Visual Studio C# 项目生成时复制项目资源目录到生成目录
关键词:C#, C#项目, csproj, Visual Studio, VS, MSBuild, output, debug, 项目生成, 复制
关联搜索标题:
C# Visual Studio 项目生成时复制项目资源文件到生成目录
Visual Studio:如何“复制到输出目录”而不复制文件夹结构?
Visual Studio 如何复制项目里的某个文件夹(及其子目录和文件)到输出文件夹?
博主我作为一个过来人,有必要给光速入门的新手指明学习方向
微软官网 MSBuild 开发文档: https://docs.microsoft.com/zh-cn/visualstudio/msbuild/msbuild
其实完全可以避免使用预处理宏(什么 copy, xcopy 这些傻快直 的命令),直接修改 csproj 文件达成目的。
以下操作,都是在项目根目录下的 csproj 文件里折腾。
直接拷贝某个目录下的所有文件(递归,包括子目录,但不包含目录结构)到输出目录
<Target Name="CopyMyFolder" BeforeTargets="PrepareForBuild"><ItemGroup><SomeFolder Include="MyFolder\**"></SomeFolder></ItemGroup><Copy SourceFiles="@(SomeFolder)" DestinationFolder="$(OutputPath)" SkipUnchangedFiles="True"></Copy></Target>
直接拷贝整个目录(递归,包括它自己、它的所有子目录及其文件,包含目录结构)到输出目录
<ItemGroup><None Include="MyFolder\**"><CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory></None>
</ItemGroup>
直接拷贝某个目录下的所有子对象(递归,不包括自己,只包括它的所有子目录及其文件,包含目录结构)到输出目录
<Target Name="CopyMyFolder" BeforeTargets="PrepareForBuild"><ItemGroup><SomeFolder Include="MyFolder\**" /></ItemGroup><Copy SourceFiles="@(SomeFolder)" DestinationFiles="$(OutputPath)\%(RecursiveDir)%(Filename)%(Extension)" SkipUnchangedFiles="True"></Copy>
</Target>
- 有网友可能会问:
- 搞这么多,有什么用?
- copy/xcpoy 命令简单粗暴,它不香吗?
- 但你在开发中是否会遇到:
- C/C++编译出来的DLL库,尽管在Visual Studio里引用了,可是编译输出的文件夹里却没有!
- 正在开发的项目是基于某个SDK开发的,和第三方软件做对接。但是每次手动Copy最新生成的二进制文件到第三方软件根目录下才能测试,就很烦。
- 通过预处理的宏,简单粗暴的 copy/xcopy 命令,每次编译生成都要完整走一遍完整复制(有重的直接覆盖)。机械硬盘用户表示很伤:复制太慢了。固态硬盘用户表示也很伤:又增加了没有必要的写入,消耗了本来就可以节省的硬盘寿命!
通过学习本篇博客,你将可以彻底解决 从 项目文件直接复制到 编译输出的文件夹 不能全自动的问题!同时可以抛弃不能智能跳过相同文件的 copy/xcopy 命令!
Visual Studio C# 项目生成时复制项目资源目录到生成目录相关推荐
- visual studio编译linux,在 Visual Studio 中配置 Linux MSBuild C++ 项目
在 Visual Studio 中配置 Linux MSBuild C++ 项目Configure a Linux MSBuild C++ project in Visual Studio 10/16 ...
- 使用Visual Studio 创建新的Web Part项目
使用Visual Studio 创建新的Web Part项目 Web Part是你将为SharePoint创建的最常见的对象之一.它是平台构建的核心基块. 1. 管理员身份打开Visual Studi ...
- Visual Studio 2022重命名解决方案和项目
Visual Studio 2022重命名解决方案和项目 1.重命名解决方案 2.重命名项目名 3.修改程序集名称及命名空间 4.全局替换项目名 5.修改项目文件夹名称 6.修改.sln文件 7.修改 ...
- 在Visual Studio中使用C#脚本(CSX脚本)生成代码
目录 介绍 C#脚本(CSX文件) CSX脚本示例 MyProgram.cs MyScript.csx 使用C#REPL(CSI.EXE)运行CSX脚本 程序集引用 NuGet软件包 从PowerSh ...
- vs2017c语言一闪而逝6,Visual Studio IDE编写程序时不显示窗口或窗口一闪而逝的解决方法...
这篇文章主要为大家详细介绍了Visual Studio IDE编写程序时不显示窗口或窗口一闪而逝的解决方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 使用Visual Studio IDE编写 ...
- [Visual Studio 2022 C# VSTO Excel]复制form窗体或复制cs类的正确做法
[Visual Studio 2022 C# VSTO Excel]复制form窗体或复制cs类的正确做法 如果直接在VS中复制粘贴的话,则会报错. 解决方法: 1.将要复制的form窗体和类的三个类 ...
- Visual Studio 2017在编译时出现错误E2512:功能测试宏的参数必须是简单标识符
Visual Studio 2017在编译时出现错误E2512:功能测试宏的参数必须是简单标识符 问题描述: Visual Studio 2017在编译时出现错误E2512:功能测试宏的参数必须是简单 ...
- Visual Studio Code设置断点时出现Unverified breakpoint该咋办
有的时候在Visual Studio Code里选中某一行设置断点,发现代码行号前面的圆圈是空心的, 而期望的断点设置成功后,显示是这样的: 空心的圆圈前面弹出的提示"Unverified ...
- 在Visual Studio中利用NTVS创建Pomelo项目
刚看新闻,才知道微软发布了Node.js Tools for Visual Studio(NTVS),受够了WebStorm输入法Bug的困扰,这下终于可以解脱了.以Pomelo为例,运行命令:pom ...
最新文章
- a16z基金:顶级风投眼中的2019技术趋势
- 心得体悟帖---16、哪些看起来很难做的事情真的不过如此
- 【C#】详解使用Enumerable.Distinct方法去重
- P4457-[BJOI2018]治疗之雨【期望dp,高斯消元】
- PS图片无损放大插件 Alien Skin Blow Up 3 for Mac
- 让多核CPU占用率曲线听你指挥(Windows实现)——《编程之美》1.1学习笔记
- lnmp的php.ini,lamp/lnmp优化3--phpini
- iOS开发经验总结(上)
- linux 内存性能评估,linux的内存性能评估
- 分子动力学模拟-gromacs的基本使用
- mysql网吧管理系统_网吧管理系统(数据库)
- 大一上学期闭组考核(借阅功能有逻辑错误)
- 惠普磁带备份机支持备份几台服务器,HP 磁带机和 Tapeware 备份软件
- 基于C语言的内存池的设计与实现
- 阿里P9纯手打亿级高并发系统设计手册,走进阿里的架构世界
- mysql grant什么意思_MySQL grant 语法的详细解析
- 石川:异象、因子和多因子模型
- 视频信号指标与测试方法
- 微博点击图片放大html,新浪微博图片放大效果[artZoom.js]
- python调用linux的命令
热门文章
- 茅台集团黔茅酒产品介绍
- 科学计算机等号按哪个,急!!计算器解方程等于号怎么按?
- 最短路 弗雷迪青蛙正坐在湖中的一块石头上。突然他注意到坐在另一块石头上的Fiona Frog。他计划去看望她,但由于水很脏,而且满是游客的防晒霜,他想避免游泳,而是跳着去接近她。
- 一个中国式研发绩效管理小故事
- 基于python的tcp的端口转发程序
- linux ros安装
- pureftpd mysql 语句_Pureftpd之MYSQL数据库所使用的函数
- Kaggle之数据集的使用(2)类别存储在csv文件中
- 2020一线互联网大厂面经集——阿里篇「1」
- Oracle排名函数(Rank)实例详解