相关疑难解决方法(0)

如何在VS 2012中的Web部署发布任务之前执行PowerShell脚本?

目前,我使用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 &quot;$(ProjectDir)\Copyright.ps1&quot;" />
</Target>
Run Code Online (Sandbox Code Playgroud)

powershell publish msdeploy post-build-event visual-studio-2012

19
推荐指数
2
解决办法
7761
查看次数

错误 MSB4006:在涉及目标的目标依赖图中存在循环依赖

我在使用 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)

执行上述操作会导致一遍又一遍地运行构建/发布。

我试过命名不同的目标,通过另一个目标调用它无济于事。

如何在不进入重复循环的情况下在项目上运行“发布”?这可以用另一种方式完成吗?

c# msbuild build-process visual-studio-2012

5
推荐指数
1
解决办法
8961
查看次数