Visual studio 为什么Visual Studio 2019会在生成后删除引用的程序集?
我有一个VisualStudio2019解决方案,是从其他有多个项目的人那里继承的。 我正试图建立一个特别的项目。 我有一个对“copy local”设置为true的外部程序集的引用 当我构建项目时,引用的程序集会被复制到输出文件夹,但随后会被删除 我知道它会被复制,因为我尝试使用后期生成事件“dir$(TargetDir)”,它显示了dllVisual studio 为什么Visual Studio 2019会在生成后删除引用的程序集?,visual-studio,msbuild,Visual Studio,Msbuild,我有一个VisualStudio2019解决方案,是从其他有多个项目的人那里继承的。 我正试图建立一个特别的项目。 我有一个对“copy local”设置为true的外部程序集的引用 当我构建项目时,引用的程序集会被复制到输出文件夹,但随后会被删除 我知道它会被复制,因为我尝试使用后期生成事件“dir$(TargetDir)”,它显示了dll 知道为什么之后会被删除吗?问题是您使用了一些nuget软件包,如Costura.Fody,它可以将特定的外部程序集合并到主输出文件中,同时将其设置为Cop
知道为什么之后会被删除吗?问题是您使用了一些nuget软件包,如
Costura.Fody
,它可以将特定的外部程序集合并到主输出文件中,同时将其设置为Copy Local True
因此请检查您的FodyWeavers.xml
文件是否包含您的外部程序集
在我这边,我有一个名为ClassLibrary22.dll
的外部程序集,并将其设置为CopyLocal到true
并将这些添加到FodyWeavers.xml
文件中:
因此,程序集ClassLibrary22.dll
将合并到主项目exe
或dll
输出文件中,并且在输出文件夹下不存在。
这就是原因。问题是由我的csproj文件中的以下行引起的:
<Target AfterTargets="AfterBuild;NonWinFodyTarget" Name="CleanReferenceCopyLocalPaths">
<Delete Files="@(ReferenceCopyLocalPaths->'$(OutDir)%(DestinationSubDirectory)%(Filename)%(Extension)')" />
</Target>
解决方案是使用Fody来编织组件。
我已经删除了编织,但是csproj文件中的这一行是使用Fody留下的。您可以通过检查构建日志来诊断问题@确实是。是项目文件中名为Fody reference的工具。它删除目标目录中的dll。Fody使用IL编织重写dll。检查
FodyWeavers.xml
@GaryW,有关于此问题的更新吗?请检查我的回答是否有助于您处理此问题。如果有帮助,请不要忘记。如果没有,请随时通知我们:)