我试图在发布事件后调用简单的任务.当我说"发布"时,我的意思是在Visual Studio中发布,右键单击项目并按"发布...".我在项目文件中包含了(导入的)目标文件,因为我已经在Build事件上测试了它,所以工作正常.我在http://msdn.microsoft.com/en-us/library/ms366724.aspx上发现有AfterPublish事件应该做我需要的事情,但事实并非如此.我不确定这是否应该在Visual Studio中的Publish上触发,有人请澄清这一点.我的问题是如何在Visual Studio中的Publish上触发目标文件中的任何类型的任务?
我在目标文件中尝试了这个:
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Target Name="AfterPublish">
<Message Label="Test"></Message>
<Warning Label="Test"></Warning>
</Target>
</Project>
Run Code Online (Sandbox Code Playgroud)
我正在使用Visual Studio 2010.
编辑:
我实际上正在寻找在Visual Studio中的Publish上执行某些操作的任何方法.我还在考虑添加Build Events,但我不知道如何确定它是否正在发布.
编辑:@Alexey Shcherbak感谢您的快速回复.我在我的MSBuild输出中得到这个:
12/10/2012 12:29:40 AM: Done executing task "CallTarget".
12/10/2012 12:29:40 AM: Done building target "PipelinePreDeployCopyAllFilesToOneFolder" in project "PublishTestApp.csproj".
12/10/2012 12:29:40 AM:Done building project "PublishTestApp.csproj".
Deleting existing files...
Publishing folder /...
Publishing folder Account...
Publishing folder bin...
Publishing folder Scripts...
Publishing folder Styles...
========== Build: 1 succeeded or up-to-date, 0 failed, 0 skipped ==========
========== Publish: …
Run Code Online (Sandbox Code Playgroud) 我必须在这里遗漏一些明显的东西,但我在ASP.NET MVC Web项目.csproj
文件的末尾有这个:
[...]
<Target Name="BeforePublish">
<Error Condition="'foo'=='foo'" Text="test publish error" />
</Target>
</Project>
Run Code Online (Sandbox Code Playgroud)
据我所知,这应该总是导致发布失败并出现错误.然而,如果我加载项目,右键单击它,然后单击"发布",这个东西会毫不费力地发布.我错过了什么?