2010-03-02 45 views
4

我有一個.Net項目,它使用位於GAC中的MySQL連接器。Nant無法在GAC中找到程序集

在我的nant創建文件存在似乎沒有一個方法可以告訴CSC看在GAC中找到這個DLL(或輸入信息)和我的項目不會建立。

有沒有辦法告訴南特,這個參考確實存在,其在GAC。

它真的很奇怪,因爲很明顯,所有的Microsoft庫例如「系統」位於Gac中,並且在構建任何引用這些參數的引用時都沒有問題。我已經確認Mysql連接器也在Gac中。

謝謝。

+2

我建議委派的MSBuild用於實際編譯 – 2010-03-02 12:53:43

+0

這是被需要的。現在它使用的MSBuild一切都很好。 – Remotec 2010-03-03 09:06:52

回答

3

CSC查找在當前目錄中的DLL,在框架目錄,在在/ lib開關提到的目錄,在LIB環境變量中提到的目錄。

但不在GAC中。你可以使用csc /r:full_path_to_the_gac_file.dll進行編譯,它可以工作,但不是非常用戶友好。

.NET組件都安裝在兩個地方:在GAC並在框架目錄(這可以解釋爲什麼他們被發現)。

您應該複製您可以在指定目錄需要的DLL和與/ lib目錄開關引用它。當然,在運行時,它將從GAC中獲取。

0

另一個(更便攜)的解決方案可能是:

<csc output="../bin/output.dll" target="library"> 
<references> 
    <include name="\%windir%\assembly\AForge.dll" /> 
</references> 
<sources> 
    <include name="**/*.cs" /> 
</sources> 
</csc> 

你也可以用lib標籤\%WINDIR \組件添加到搜索路徑,但它是惡性文檔中標記爲已過時。

相關問題