2013-02-27 97 views
1

我正在使用以下命令的批處理文件,以便即時成功編譯C#代碼,運行生成的exe文件並運行exe文件。編譯時CSE.exe程序集搜索

start /wait C:\WINDOWS\Microsoft.NET\Framework\v3.5\csc.exe /out:PostillionOutgoing.exe PostillionOutgoing.cs /reference:AlexPilotti.FTPS.Client.dll 
call SetupCI.bat 
start /wait PostillionOutgoing.exe 
del PostillionOutgoing.exe 

它的工作原理與我想要的一樣。文件AlexPilotti.FTPS.Client.dll與.cs文件位於同一文件夾中。

裝配AlexPilotti.FTPS.Client.dll也是很多其他類似的應用程序所需要的。我的問題是,是否有任何集中的地方可以保存這個DLL,以便所有上述批處理腳本都能找到它?通過這種方式,我不必在所有單獨的文件夾中保存此DLL的副本。

我不想將該DLL放入GAC中。我也嘗試在system32文件夾中,但它沒有工作。

回答

1

可以使用/ lib下的命令行指定的參考

搜索文件夾

看到MSDN文檔這裏http://msdn.microsoft.com/en-us/library/vstudio/s5bac5fx.aspx

+0

我試過的lib選項,改變了第一行開始/等待C:\ WINDOWS \微軟.NET Framework \ v3.5 \ csc.exe/lib:C:\ Windows \ System32 \ /out:PostillionOutgoing.exe PostillionOutgoing.cs /reference:AlexPilotti.FTPS.Client.dll,但仍然是相同的錯誤,我有將該DLL複製到指定的文件夾雖然 – 2013-02-27 13:35:36

+0

我放置在System32以外的某個目錄中並且它工作正常。 – 2013-02-27 13:47:03

+0

可能會有一個權限問題使用system32不能說我知道我的自我雖然。但我不想使用該文件夾,例如,您可能需要清除所有dll以確保它們被重新創建。很高興在這裏工作 – Dreamwalker 2013-02-27 13:58:23

1

根據documentation,在探測程序集時(即,由於它無法找到程序集而查看目錄時)沒有運行時使用的固定位置。

但是,如果您的程序集是強命名的,那麼您可以在app.config中使用<codeBase>配置元素將運行時定向到您選擇的任何路徑。

如果你的程序集沒有強命名,並且你不想使用app.config,那麼不幸的是你沒有選擇。