我有一个很大的WCF项目,它在很多子项目中构建(Web角色,后端,WPF客户端,客户端库等网站)。每个项目都有3个配置文件:
根据当前的解决方案配置(调试/发布/测试),使用后期构建事件重命名这些文件。因此,不同项目中的后期构建事件看起来像这样(除了在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>
答案 0 :(得分:0)
你把你的建设后事件放在哪里?
您需要将您的Post-Build事件放在您的云服务上,而不是您的WCF项目上,请参阅附带的屏幕截图:
右键单击>属性>建立活动