如何为不同的配置(发布,调试等)为Azure构建不同的启动任务

时间:2013-01-16 11:19:50

标签: c# visual-studio azure

我在Azure项目的ServiceDefinition文件中有这些行:

<Startup>
  <Task commandLine="Tools\Reminder.cmd" executionContext="elevated" taskType="simple" />
</Startup>

但是对于测试服务器和生产服务器,它必须是不同的Reminder.cmd文件。 我该怎么做?我知道我们可以为ServiceConfiguration配置不同的配置,但无法弄清楚如何为ServiceDefinition文件设置不同的配置。

2 个答案:

答案 0 :(得分:2)

遗憾的是,无法为部署环境中运行的启动任务配置ServiceDefinition文件。关于这一点的一般建议是将自定义代码/测试放在任务本身中,如果它没有在生产服务器中运行则退出。

但是,您可以将启动任务配置为不在ServiceDefinition中的本地开发计算机上运行。史蒂夫马克思有nice post如何做到这一点。

<Startup>
  <Task executionContext="elevated" commandLine="startup\startup.cmd">
    <Environment>
      <Variable name="EMULATED">
        <RoleInstanceValue xpath="/RoleEnvironment/Deployment/@emulated" />
      </Variable>
    </Environment>
  </Task>
</Startup>

答案 1 :(得分:0)

我所知道的最简单的方法是为每个环境提供不同的CSDEF文件。 this question的答案将告诉您如何操作。

这个问题是关于改变VM大小,但它确实是同样的问题。在您的情况下,您只需更改每个环境的启动任务。