如何防止引用程序集的嵌入式依赖项被复制到Visual Studio中的输出文件夹?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何防止引用程序集的嵌入式依赖项被复制到Visual Studio中的输出文件夹?相关的知识,希望对你有一定的参考价值。

我有:

  1. A.dll - 第三方集会
  2. B.dll - 我自己的类库程序集
  3. C.exe - 我自己的可执行文件

我使用Costura.Fody NuGet package将A.dll嵌入到B.dll中,而C.exe有一个对B.dll的二进制引用。

(嵌入在B.dll中的A.dll)< - C.exe

但是,当我构建C.exe时,尽管已经嵌入到B.dll(它也被复制到输出文件夹),但是A.dll出现在输出文件夹中。我不希望用我的可执行文件分发基本上是A.dll的两个副本,但我想将A&B分发为一个。

在B.dll中,A.dll的“Copy Local”属性设置为false,而是显式包含在Costura的FodyWeavers.xml中。

有没有什么方法可以配置Costura.Fody和/或我的引用属性,以便A.dll不会独立复制到C.exe的输出文件夹中,而B.dll(嵌入引用A.dll)被复制?

答案

据我所知,需要您想要避免的参考组件。

另一答案

在引用msbuild跟踪日志后,我发现C.exe正在解析程序文件中A.dll的路径。从Program Files中删除A.dll解决了我的问题。

以上是关于如何防止引用程序集的嵌入式依赖项被复制到Visual Studio中的输出文件夹?的主要内容,如果未能解决你的问题,请参考以下文章

防止将引用的程序集 PDB 和 XML 文件复制到输出

防止将引用的程序集PDB和XML文件复制到输出

MEF - 插件及其引用的程序集

如何排除依赖项被 Spring Boot 的依赖项管理插件固定?

Maven 不复制依赖项

如何删除对 Dependencies/Frameworks/Microsoft.NETCore.App 中未使用程序集的引用?