[英]Run mono .exe with the DLL's in a different folder
我使用Mac的dmcs
可執行文件和以下命令行程序編譯了test.cs
文件(引用第三方庫):
dmcs /out:program.exe test.cs /target:exe /reference:/Users/kevin/path/to/bin/Debug/project.dll
編譯沒有問題(排除/ reference參數導致問題)。 這在當前目錄中創建了一個program.exe
可執行文件。 當我試圖像這樣運行它:
mono program.exe
我收到以下錯誤:
Unhandled Exception:
System.IO.FileNotFoundException: Could not load file or assembly 'project, Version=3.4.1.0, Culture=neutral, PublicKeyToken=null' or one of its dependencies.
我能解決這個問題的唯一方法是將project.dll
文件復制到包含program.exe
文件的目錄中。 將project.dll
復制到同一目錄后,程序運行正常。
是否有一個額外的參數我可以傳遞給mono
以在另一個程序目錄中指定DLL? 或者,是否有一個標志我可以傳遞給dmcs
,以便將DLL直接編譯成二進制文件?
您可以使用app.config中的探測元素來實現您想要的效果
<configuration>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<probing privatePath="bin;bin2\subbin;bin3"/>
</assemblyBinding>
</runtime>
</configuration>
將privatePath設置為您想要的任何目錄的位置。 http://msdn.microsoft.com/en-us/library/823z9h8w(v=vs.80).aspx
但是,除非您指定子目錄,否則我強烈反對這一點。 如果您確實不希望將程序集放在同一目錄中,請考慮使用Uwe Keim建議的鏈接或使用GAC。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.