首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用不同文件夹中的DLL运行mono .exe

使用不同文件夹中的DLL运行mono .exe
EN

Stack Overflow用户
提问于 2012-12-25 17:29:44
回答 1查看 5.3K关注 0票数 8

我使用适用于Mac的dmcs可执行文件和以下命令行程序编译了test.cs文件(它引用了第三方库):

代码语言:javascript
复制
dmcs /out:program.exe test.cs /target:exe /reference:/Users/kevin/path/to/bin/Debug/project.dll 

编译后没有任何问题(排除/reference参数会导致问题)。这将在当前目录中创建一个program.exe可执行文件。当我尝试像这样运行它时:

代码语言:javascript
复制
mono program.exe

我得到了以下错误:

代码语言:javascript
复制
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`s编译成二进制文件?

EN

回答 1

Stack Overflow用户

发布于 2012-12-25 17:46:14

您可以使用app.config中的探测元素来实现您想要的结果

代码语言:javascript
复制
<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。

链接:http://www.mono-project.com/Linker

GAC:http://www.mono-project.com/Assemblies_and_the_GAC

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14029396

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档