在MSDeployPublish之后检索发布信息

时间:2015-11-18 18:49:22

标签: c# web msbuild visual-studio-2015 web-deployment

为了向Rollbar发布部署通知,我需要提供一个环境。我有多个发布配置文件设置,以便我可以部署到各种开发,测试和生产环境。是否有可用于从发布配置文件访问配置文件/ DeployIisAppPath的属性或命令?

我有以下目标设置:

  <Target Name="NotifyRollbarOfDeploy" AfterTargets="MSDeployPublish">
    <Exec Command="git log -1 --format=%%H" ConsoleToMSBuild="true" EchoOff="true" WorkingDirectory="$(ProjectDir)\..">
      <Output TaskParameter="ConsoleOutput" PropertyName="GitSHA" />
    </Exec>

    <Exec Command="git config user.email" ConsoleToMSBuild="true" EchoOff="true" WorkingDirectory="$(ProjectDir)\..">
      <Output TaskParameter="ConsoleOutput" PropertyName="GitEmail" />
    </Exec>

    <Exec Command="@powershell -NoProfile -ExecutionPolicy unrestricted -Command &quot;(new-object net.webclient).UploadString('https://api.rollbar.com/api/1/deploy/', 'access_token=REDACTED&amp;environment=@(dev|test|production)&amp;revision=$(GitSHA)&amp;local_username=$(GitEmail)')&quot;" EchoOff="true" />
</Target>

如何为环境提供此值?

1 个答案:

答案 0 :(得分:0)

我的解决方法相当丑陋。我没有尝试从目标中检索信息,而是决定回到Rollbar建议的RollbarSharp片段。我需要在我的案例中添加三个构建配置:dev,test和prod,并连接我的发布配置文件以使用这些构建配置。然后,我为每个构建配置添加了web.config转换,指定了实际的rollbar环境设置应该是什么。

转换部分看起来像

  <appSettings>
    <add
      key="Rollbar.Environment"
      value="development"
      xdt:Transform="Replace"
      xdt:Locator="Match(key)"/>
  </appSettings>