C# 将引用的程序集复制到输出目录的子目录
通过在VS2017属性窗口中将.net引用的“Copy Local”设置为true,可以告诉生成过程将引用的程序集复制到项目的输出目录。但是,如果希望将程序集复制到输出目录(将通过app.config设置添加到搜索路径列表)的特定子目录,该怎么办?除了在后期构建步骤中使用批处理文件外,还有其他方法可以做到这一点吗?我想出的唯一方法是:C# 将引用的程序集复制到输出目录的子目录,c#,.net,visual-studio,visual-studio-2017,C#,.net,Visual Studio,Visual Studio 2017,通过在VS2017属性窗口中将.net引用的“Copy Local”设置为true,可以告诉生成过程将引用的程序集复制到项目的输出目录。但是,如果希望将程序集复制到输出目录(将通过app.config设置添加到搜索路径列表)的特定子目录,该怎么办?除了在后期构建步骤中使用批处理文件外,还有其他方法可以做到这一点吗?我想出的唯一方法是: 将有关引用的“复制本地”设置为false 将引用的部件文件作为内容单独添加到项目中(请参见下文) 最大的缺点是:如果任何引用的程序集都有自己的引用,那么它们(以及
<ItemGroup> <!-- you probably already have an ItemGroup you can use -->
<Content Include='subdir\referenced.dll'>
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
</ItemGroup>
保存最新
请注意,如果您需要输出中的目录结构与源位置中的目录结构不同,则需要进行一些调整,如中所述:
保存最新
dest\u dir\referenced.dll
您可以尝试以下方法:@hce我现在正在探索这个选项。总比什么都没有好,但这意味着我必须添加引用及其所有引用作为内容,并随着情况的变化保持此列表的最新状态。使用标准的“复制本地”选项,构建过程足够智能,可以自行收集和复制可传递的引用。
<ContentWithTargetPath Include="source_dir\referenced.dll">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
<TargetPath>dest_dir\referenced.dll</TargetPath>
</ContentWithTargetPath>