将 DLL 构建到单独的文件夹

Posted

技术标签:

【中文标题】将 DLL 构建到单独的文件夹【英文标题】:Build DLL to a separate folder 【发布时间】:2018-12-15 02:35:24 【问题描述】:

第一

有几个类似的问题,但没有有答案 这解决了我的问题,我也不能在其中发帖。最接近的是this question。

我找到了答案here。我在这里发帖,所以我可以找到它 稍后。

问题:如何构建我的项目并将我的所有Referenced Library 放在lib 子文件夹中?

A 想要这个输出目录:

保持这样的状态:

【问题讨论】:

【参考方案1】:

我找到了答案here 并在此处转录了链接死的情况。

在您的 App.config 文件中,插入以下内容:

<configuration>
  <runtime>
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
      <probing privatePath="lib" />
    </assemblyBinding>
  </runtime>
</configuration>

然后转到Project -&gt; Properties --- 右键单击​​您的Project,然后在ContextMenu 中选择Properties

现在转到Build Events 并在Post-build event command line 文本框中添加以下代码(如下图所示)。

; Move all assemblies and related files to lib folder
ROBOCOPY "$(TargetDir) " "$(TargetDir)lib\ " /XF *.exe *.config *.manifest /XD lib logs data /E /IS /MOVE
if %errorlevel% leq 4 exit 0 else exit %errorlevel%

之后

构建您的项目并与您的强迫症说再见!

【讨论】:

很高兴知道这一点! :) 请注意,由于某种原因,这会中断对引用此项目的其他项目的调试。在执行这些其他项目时,该项目由于某种原因无法找到它的依赖 DLL。

以上是关于将 DLL 构建到单独的文件夹的主要内容,如果未能解决你的问题,请参考以下文章

将 DLL 动态加载到单独的应用程序域中,然后卸载

如何配置 tfs build 以在发布构建完成时复制 dll

通过 BAT 脚本将构建的 dll 文件移动到特定文件夹?

在 Visual Studio 中构建 DLL 时使用静态库

将 Qt DLL 保存在单独的文件夹中

如何设置输出子文件夹以在构建时将引用 dll 复制到