2017-02-14 45 views
0

好吧,我有一個很好的看,發現沒有什麼有用的這個問題。我有一個在VS(Visual Studio)的解決方案。它有兩個項目說ProjectA和ProjectB。處理.dll不在GAC之間移動DEBUG和版本

項目A創建A.dll。 ProjectB創建B.EXE其中引用A.dll

在DEBUG模式下,一切正常,正如您所期望的那樣。但是,在發佈模式下,文件將被移至安裝後的位置。 A.dll將不會安裝在GAC中。因爲A.dll不是預期與B.EXE相關的位置,所以exes失敗。足夠合理。

在生成後事件我複製的.EXE文件到c:\los\A.dll被轉移到c:\los\libs\

目前,我不得不去參考A.dll,然後再參考,現在它指向它的新位置,重建然後發佈版本起作用。真正的解決方案有很多項目和大量的.dll,這意味着我可以輕鬆(而且確實)忘記定期重新引用新的.dll。

是否有辦法來自動執行此過程厭煩?

+1

你爲什麼不使用GAC –

+0

這是一個要求。 –

+0

是否將生成屬性中的配置更改爲所有配置幫助? 而不是具有不同的調試和發佈配置。 –

回答

1

我相信你正在尋找的.Net的探測功能。下面是參考:https://msdn.microsoft.com/en-us/library/823z9h8w.aspx

實施例:

<configuration> 
    <runtime> 
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> 
     <probing privatePath="libs"/> 
    </assemblyBinding> 
    </runtime> 
</configuration> 

探測已經只有子文件夾可以從執行EXE運行的位置搜索的限制。但是,由於您的EXE位於C:\ Ios中並且該DLL位於子文件夾C:\ Ios \ Libs中。根據文檔,您可以指定多個子文件夾。我只是將「Libs」文件夾放入示例中以匹配您的問題。

+0

不知怎的改變參考現在看看。 –

相關問題