VS重新编译拷贝指定文件夹内容到输出目录

第一种方式

1.指定生成事件

  1. 在“解决方案资源管理器”中,选择要为其指定生成事件的项目 。
  2. 在“项目”菜单上,单击“{ProjectName} 属性”(或在“解决方案资源管理器”中,按 Alt+Enter)。
  3. 选择“生成”>“事件”。
  4.  

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>

 

posted @   骑着蚂蚁快跑  阅读(623)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· DeepSeek “源神”启动!「GitHub 热点速览」
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· C# 集成 DeepSeek 模型实现 AI 私有化(本地部署与 API 调用教程)
· DeepSeek R1 简明指南:架构、训练、本地部署及硬件要求
· NetPad:一个.NET开源、跨平台的C#编辑器
点击右上角即可分享
微信分享提示