Visual Studio 如何将项目中目录下的文件复制到输出目录的根目录下?

在做 C# 工程的时候,有些外部文件需要复制到输出目录(Debug/Release) 下。比如我们很多项目的数据库配置工具,就是另一个单独工程编写的,因为数据库配置工具它是由两个文件组成,一个是可执行文件,另一个是数据库配置文件。这时候如果你把这个文件放到项目指定目录下,然后设置这两个文件为 复制到输出目录,编译后会将这两个文件所在的目录结构也复制到 Debug 或 Release 目录,也就是复制了 db-config 这整个目录到输出目录下。

然后我只想让这两个文件输出到输出目录的根目录下面。那么怎么做呢?

方法一

将这两个外部文件放到项目的根目录下面,然后设置为复制到输出目录,编译后这两个文件将复制到 Debug 或 Release 根目录下面。

方法二

打开 xxx.csproj 文件,将 修改为 ,并添加 ,再次编译就能看到效果。

xxx.csproj
1
2
3
4
5
6
7
8
9
10
<ItemGroup>
<ContentWithTargetPath Include="db-config\config.xml">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
<TargetPath>config.xml</TargetPath>
</ContentWithTargetPath>
<ContentWithTargetPath Include="db-config\奥图威尔数据库配置.exe">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
<TargetPath>奥图威尔数据库配置.exe</TargetPath>
</ContentWithTargetPath>
</ItemGroup>

请注意,此条目在Visual Studio(2012、2015、2017)中可能不可见,但是一旦手动添加到 csproj 中,它将显示在 Visual Studio 中。但是,目标路径 TargetPath 将无法通过 UI 进行编辑。

参考

Visual Studio 如何将项目中目录下的文件复制到输出目录的根目录下?

https://ganzhixiong.com/p/76b05e8a/

Author

干志雄

Posted on

2021-10-25

Updated on

2021-10-25

Licensed under

Comments