Visual Studio 2022项目发布到文件夹后如何运行bat文件
原因说明
你当前使用的AfterTargets="AfterPublish"配置不属于Visual Studio 2022 文件夹发布流程支持的触发规则:SDK风格项目的文件夹发布流程不会调用传统的AfterPublish目标,因此你写的Target节点从未被执行,才会出现无报错但bat文件不运行的情况。
正确配置方案
根据你的使用场景选以下任意一种配置替换原有代码即可:
- 仅针对发布到文件夹的场景触发:绑定到文件夹发布专属的
FileSystemPublish目标,推荐用这种,不会在其他发布类型下误触发
<Target Name="ExecuteBatAfterPublish" AfterTargets="FileSystemPublish"> <!-- WorkingDirectory指定bat执行的工作目录为发布输出文件夹,避免路径相关的静默错误 --> <Exec Command="D:\postbuild.bat" WorkingDirectory="$(PublishDir)" ConsoleToMsBuild="true" /> </Target>
- 兼容所有发布目标(文件夹/IIS/容器等):绑定到通用的
Publish目标
<Target Name="ExecuteBatAfterPublish" AfterTargets="Publish"> <Exec Command="D:\postbuild.bat" WorkingDirectory="$(PublishDir)" ConsoleToMsBuild="true" /> </Target>
配置说明:代码里的
ConsoleToMsBuild="true"会把bat脚本的执行输出打印到Visual Studio的生成输出窗口,后续如果脚本执行有问题可以直接在输出窗口看报错信息;内置变量$(PublishDir)就是你选择的发布文件夹的绝对路径,bat里如果要操作发布后的文件可以直接用这个路径传参。
内容的提问来源于stack exchange,提问作者MTplus
相关产品推荐
相关产品推荐

