我有一個.Net項目,它使用位於GAC中的MySQL連接器。Nant無法在GAC中找到程序集
在我的nant創建文件存在似乎沒有一個方法可以告訴CSC看在GAC中找到這個DLL(或輸入信息)和我的項目不會建立。
有沒有辦法告訴南特,這個參考確實存在,其在GAC。
它真的很奇怪,因爲很明顯,所有的Microsoft庫例如「系統」位於Gac中,並且在構建任何引用這些參數的引用時都沒有問題。我已經確認Mysql連接器也在Gac中。
謝謝。
我有一個.Net項目,它使用位於GAC中的MySQL連接器。Nant無法在GAC中找到程序集
在我的nant創建文件存在似乎沒有一個方法可以告訴CSC看在GAC中找到這個DLL(或輸入信息)和我的項目不會建立。
有沒有辦法告訴南特,這個參考確實存在,其在GAC。
它真的很奇怪,因爲很明顯,所有的Microsoft庫例如「系統」位於Gac中,並且在構建任何引用這些參數的引用時都沒有問題。我已經確認Mysql連接器也在Gac中。
謝謝。
CSC查找在當前目錄中的DLL,在框架目錄,在在/ lib開關提到的目錄,在LIB環境變量中提到的目錄。
但不在GAC中。你可以使用csc /r:full_path_to_the_gac_file.dll進行編譯,它可以工作,但不是非常用戶友好。
.NET組件都安裝在兩個地方:在GAC並在框架目錄(這可以解釋爲什麼他們被發現)。
您應該複製您可以在指定目錄需要的DLL和與/ lib目錄開關引用它。當然,在運行時,它將從GAC中獲取。
另一個(更便攜)的解決方案可能是:
<csc output="../bin/output.dll" target="library">
<references>
<include name="\%windir%\assembly\AForge.dll" />
</references>
<sources>
<include name="**/*.cs" />
</sources>
</csc>
你也可以用lib標籤\%WINDIR \組件添加到搜索路徑,但它是惡性文檔中標記爲已過時。
我建議委派的MSBuild用於實際編譯 – 2010-03-02 12:53:43
這是被需要的。現在它使用的MSBuild一切都很好。 – Remotec 2010-03-03 09:06:52