目前,我使用Visual Studio 2012在我的Web项目中配置了一个构建后事件,如下所示:

这基本上调用PowerShell脚本向每个.cs文件添加版权声明.
我想要做的是仅在将Web应用程序发布到远程服务器之前执行此PowerShell脚本.这样做我每次需要调试项目时都不会遇到延迟.你知道有什么方法可以实现吗?
根据Sayed的回答,我定制了一个特定的发布配置文件并添加了这个:
<PipelineDependsOn>
CustomBeforePublish;
$(PipelineDependsOn);
</PipelineDependsOn>
</PropertyGroup>
<Target Name="CustomBeforePublish">
<Message Text="******* CustomBeforePublish *******" Importance="high" />
<Exec Command="powershell.exe -file "$(ProjectDir)\Copyright.ps1"" />
</Target>
Run Code Online (Sandbox Code Playgroud) powershell publish msdeploy post-build-event visual-studio-2012
我在使用 VS2012 的 csproj 文件上有以下目标,一旦构建完成,我想在项目上运行“发布”。
这给了我以下错误“错误 MSB4006:在涉及目标“AfterBuild”的目标依赖图中存在循环依赖”
<Target Name="AfterBuild">
<Message Text="Running Publish..." Importance="high"/>
<MSBuild Projects="$(ProjectPath)" Properties="DeployOnBuild=true;PublishProfile=WebDeploy;CreatePackageOnPublish=True;VisualStudioVersion=11.0"/>
</Target>
Run Code Online (Sandbox Code Playgroud)
我曾尝试用替换 MSBuild 步骤
<Exec Command="$(MSBuildBinPath)\MSBuild C:\MyProj.csproj /p:DeployOnBuild=true /p:PublishProfile=WebDeploy /p:CreatePackageOnPublish=True /p:VisualStudioVersion=11.0" ContinueOnError="false" />
Run Code Online (Sandbox Code Playgroud)
执行上述操作会导致一遍又一遍地运行构建/发布。
我试过命名不同的目标,通过另一个目标调用它无济于事。
如何在不进入重复循环的情况下在项目上运行“发布”?这可以用另一种方式完成吗?