VS重新编译拷贝指定文件夹内容到输出目录
第一种方式
1.指定生成事件
- 在“解决方案资源管理器”中,选择要为其指定生成事件的项目 。
- 在“项目”菜单上,单击“{ProjectName} 属性”(或在“解决方案资源管理器”中,按 Alt+Enter)。
- 选择“生成”>“事件”。
-
2.在“生成后事件”部分中,指定生成事件的语法。
在运行 .bat 文件的所有生成后命令之前添加 call 语句。 例如,call MyFile.bat 或 call MyFile.bat call MyFile2.bat。 路径可以是绝对路径,也可以是项目文件夹的相对路径。
3.在项目文件中
当你执行上述步骤时,Visual Studio 会通过添加 PreBuild 或 PostBuild 目标以及执行所提供步骤必需的 MSBuild 代码来修改项目文件。 可以打开项目文件并查看步骤。 修改项目文件中的步骤也是可以的。 保存更改后,你将在项目属性的“生成”>“事件”部分看到这些更改。
<Target Name="PostBuild" AfterTargets="PostBuildEvent"> <Exec Command="call CopyPython.bat $(ProjectDir) $(OutDir)" /> </Target>
执行CopyPython.bat文件,并向.bat文件中穿点 两个参数 $(ProjectDir) $(OutDir)
4.CopyPython.bat文件内容
@echo off echo "项目目录===" %1 :: Project directory echo "OutDir===" %2 set projectDir=%1 set a=%projectDir%python-3.12.3 set outDir=%2 set c=%projectDir%%outDir%python-3.12.3 echo a=%a% echo c=%c% if not exist "%c%" ( echo "Destination does not exist, copying..." xcopy "%a%" "%c%" /s /e /y ) else ( echo "Destination already exists, copy not needed." )
第二种方式:
直接在项目文件中(xxx.csproj)添加
<Target Name="CopyMyFolder" BeforeTargets="PrepareForBuild"> <ItemGroup> <ResourceFiles Include="python-3.12.3\**" /> </ItemGroup> <Exec Command="echo $(ProjectDir)$(OutDir)python-3.12.3"/> <Copy SourceFiles="@(ResourceFiles)" DestinationFiles="@(ResourceFiles->'$(ProjectDir)$(OutDir)python-3.12.3\%(RecursiveDir)%(Filename)%(Extension)')" SkipUnchangedFiles="true"></Copy> </Target>
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek “源神”启动!「GitHub 热点速览」
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· C# 集成 DeepSeek 模型实现 AI 私有化(本地部署与 API 调用教程)
· DeepSeek R1 简明指南:架构、训练、本地部署及硬件要求
· NetPad:一个.NET开源、跨平台的C#编辑器