CodeDom 编译器不使用可执行目录来引用程序集

发布于 2024-09-10 10:56:34 字数 407 浏览 1 评论 0原文

我有一个 CodeDom 设置,需要引用可执行文件目录中的一些程序集。但是,似乎只在工作目录和 GAC 中搜索这些程序集,而不是可执行目录。

var compilerOptions = new CompilerOptions {
    ReferencedAssemblies = {
        "System.dll",
        "System.Core.dll",
        "Assembly0.dll",
        "Assembly1.dll"
    }
};

C# 编译器将搜索:

  1. 应用程序工作目录
  2. GAC

无论出于何种原因,它都不会在执行目录中搜索 Assembly0.dll 或 Assembly1.dll。

I have a CodeDom setup that needs to reference some assemblies that are in the executable's directory. However, it appears that only the Working Directory and the GAC are searched for these assemblies, and not the executable directory.

var compilerOptions = new CompilerOptions {
    ReferencedAssemblies = {
        "System.dll",
        "System.Core.dll",
        "Assembly0.dll",
        "Assembly1.dll"
    }
};

The C# compiler will search:

  1. Application working directory
  2. GAC

For whatever reason it will not search for Assembly0.dll nor Assembly1.dll in the execution directory.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

掀纱窥君容 2024-09-17 10:56:34

“执行目录”仅与您的进程相关,与 csc.exe 进程无关。只需生成程序集引用的完整路径即可。使用 System.Reflection.Assembly.GetEntryAssembly().Location 即可轻松完成

The "execution directory" is only relevant to your process, not the csc.exe process. Just generate the full path for the assembly reference. Easy to do with System.Reflection.Assembly.GetEntryAssembly().Location

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文