c# - 为 ASP.NET 自定义发布

标签 c# asp.net automation msbuild visual-studio-2017

我有一个 asp.net 项目,需要在每次发布后运行一些代码。

我尝试通过以下方式完成此操作:

  1. 使用vs工程文件
  2. 使用外部构建工具 Cake (c# make)

    1.) 所以找到了一些与这个问题相关的主题:

所以按照建议我将以下代码添加到我的项目文件中:

  <Target Name="BeforePublish">
    <Message Text="BeforePublish"></Message>
    <Warning Text="BeforePublish"></Warning>
  </Target>
  <Target Name="AfterPublish">
    <Message Text="AfterPublish"></Message>
    <Warning Text="AfterPublish"></Warning>
  </Target>
  <Target Name="MSDeployPublish" >
    <Message Text="MSDeployPublish"/>
    <Warning Text="MSDeployPublish"/>
  </Target>
  <Target Name="PipelinePreDeployCopyAllFilesToOneFolder" >
    <Message Text="PipelinePreDeployCopyAllFilesToOneFolder" />
    <Warning Text="PipelinePreDeployCopyAllFilesToOneFolder" />
  </Target>
  <Target Name="BeforeBuild">
    <Message Text="BeforeBuild"></Message>
    <Warning Text="BeforeBuild"></Warning>
  </Target>
  <Target Name="AfterBuild">
    <Message Text="AfterBuild"></Message>
    <Warning Text="AfterBuild"></Warning>
  </Target>

但只有 Before- 和 AfterBuild 被执行。所有其他目标都被完全忽略了。可能是因为这些其他主题使用 VS 2010 和 2012。在 VS 2017 中是否有可行的方法来执行此操作?

2.) 当我在任务中使用以下代码时,我得到的输出与我用 VS 编译它时得到的输出不同。

   MSBuild(projectFile, new MSBuildSettings()
   .WithProperty("OutDir", publishDir)
   .WithProperty("DeployTarget", "WebPublish")
   .WithProperty("DeployOnBuild", "true")
   .WithProperty("WebPublishMethod", "FileSystem")
   .WithProperty("Configuration", "Release")
   );

因此这也不是一个可行的解决方案 atm。

我很感谢任何帮助让它以某种方式工作的人。

最佳答案

这取决于你想做什么,但如果你想让你的代码在发布后运行,你需要将你的任务放在 Microsoft.Web.Publishing.targets 的目标之一之后(搜索文件以查看目标的完整列表)。通常你需要 AfterTargets="MSDeployPublish"

关于c# - 为 ASP.NET 自定义发布,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55099841/

相关文章:

c# - 使用 PadRight 方法填充字符串

c# - Visual Studio 探查器不显示类名

c# - 设置控件的属性时,ASP.NET 引号字符编码会导致问题

silverlight - 是否有任何开源工具可以自动化 Silverlight 应用程序?

c# - 如何阻止 Crystal Report Viewer 在打开子报表时询问登录凭据

c# - 只使用方法的实现?

c# - 如何在 Appium 中为 iOS 自动化启用和使用 WebView

testing - 如何开始使用 Selenium Webdriver?

asp.net - 使用 IdentityServer 的 Asp Core 客户端全局注销

c# - Visual Studio Express 用户的数据生成计划有哪些替代方案?