繁体   English   中英

Visual Studio:如何告诉 exe 在哪里寻找 dll?

[英]Visual Studio: How to tell exe where to look for dll's?

我的项目中包含一个 .lib(链接器-> 输入-> 附加依赖项),这使得 my.exe 构建需要与 .exe 一起提供相应的 .dll。 当然,我会将 .dll 放在与 .exe 相同的文件夹中,这样工作正常,但我只想在主文件夹中放置 .exe,而在子目录中放置所有其他文件以及 this.dll。 如何让.exe 在该目录中查找它?

只是为了澄清,我不需要 VS 来寻找 .dll,而是程序(.exe),在它被构建之后。 抱歉,如果有人问过这个问题,但我找不到正确的答案。

临时解决方案:显然这比我想象的要难得多,就像汉斯说的那样。 但是,我偶然发现了一个巧妙的技巧,它可以使它看起来像这样,这就是创建一个内部.exe并将其放入带有.dll的子文件夹中,而它只是从一个主.exe执行。 ShellExecute命令可用于执行此操作。 无论如何,如果有人知道如何真正做到这一点,请写下来:)

正如@Hans Passant 评论的那样,我在我的项目( C#/WPF/vs2019 )中通过将app.config编辑为:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  ...
  <runtime>
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
      <probing privatePath="External"/>
    </assemblyBinding>
  </runtime>
</configuration>

请注意,我的 output 目录树如下所示:

bin/
|--<myapp>.exe
|--External
    |--nuget1.dll
    |--nuget2.dll

您可以通过用分号分隔它们来指定多个路径。

有关详细信息,请参阅MS 文档

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM