【发布时间】:2020-06-03 09:18:32
【问题描述】:
我正在尝试在我的 .csproj 文件中定义一个自定义 <Target>,该文件应在项目成功发布后运行。我已经尝试过这些,但没有一个被调用:
<Target Name="MyTarget" AfterTargets="AfterPublish">
...
</Target>
<Target Name="MyTarget" AfterTargets="Publish">
...
</Target>
<Target Name="AfterPublish">
...
</Target>
如果,OTOH,我尝试连接到 AfterBuild 目标,一切都会按预期工作。不幸的是,我不希望我的目标在每次构建后运行。我只希望它在我发布项目后运行,这目前是手动操作 - 即我没有使用任何 CI/CD、ClickOnce、WebDeploy 或任何其他自动化管道。
根据我在互联网上阅读的内容,这可能是让我感到困惑的原因,因为 BeforePublish/AfterPublish 任务似乎不是由上下文菜单选项触发的(即解决方案资源管理器 -> 右键单击我的项目 ->发布...)。不过,我仍然有疑问,因为在手动发布之后,输出面板包含的发布信息看起来可能来自某个 .targets 文件。
FWIW,我的发布配置文件被定义为将应用程序输出到本地文件夹。
在这种情况下让我的自定义目标执行的正确方法是什么?
【问题讨论】:
-
MSBuild targets 规范说
Publish目标仅用于单击一次。您使用哪种发布方式? -
我只是选择解决方案资源管理器 -> 右键单击我的项目 -> 发布...我不知道它在后台调用了什么。