在将Web角色部署到Azure时,在后构建事件中重命名

时间:2015-05-05 10:16:08

标签: c# wcf azure azure-web-roles post-build-event

我有一个很大的WCF项目,它在很多子项目中构建(Web角色,后端,WPF客户端,客户端库等网站)。每个项目都有3个配置文件:

  • app.config - 用于本地测试
  • app.release.config - 具有高效的服务地址
  • app.test.config - 包含测试服务器的服务地址

根据当前的解决方案配置(调试/发布/测试),使用后期构建事件重命名这些文件。因此,不同项目中的后期构建事件看起来像这样(除了在Web角色项目中它" web.config"而不是" app.config"):

if not "Release"=="$(ConfigurationName)" goto :nocopyrelease
del "$(TargetPath).config"
copy "$(ProjectDir)\App.release.config" "$(TargetPath).config"
:nocopyrelease

if not "Test"=="$(ConfigurationName)" goto :nocopytest
del "$(TargetPath).config"
copy "$(ProjectDir)\App.test.config" "$(TargetPath).config"
:nocopytest

当我构建这些项目时,重命名是根据当前的构建配置完成的,一切都按预期工作,所以我确定构建事件就像现在一样好。但是一旦我发布到azure或打包" Azure云服务"其中包含Web角色,当我检查csx-Folder或cspkg-Package的内容时,不会重命名。

在发布到Azure时,是否有任何智能方法可以使用不同的配置,具体取决于所选的构建配置?到目前为止我所做的是在发布之前重命名所有项目中的配置文件。但这是一项相当烦人的任务,容易出错。必须有一个更好的方法...

我认为使用解决方案配置和构建事件是最简单的方法,因为在测试/调试/发布之间的下拉列表中更改解决方案配置将处理所有配置重命名(如果它正常工作)。 / p>

1 个答案:

答案 0 :(得分:0)

你把你的建设后事件放在哪里?

您需要将您的Post-Build事件放在您的云服务上,而不是您的WCF项目上,请参阅附带的屏幕截图:
 

右键单击>属性>建立活动