Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/282.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 将Web角色部署到Azure时在生成后事件中重命名_C#_Wcf_Azure_Azure Web Roles_Post Build Event - Fatal编程技术网

C# 将Web角色部署到Azure时在生成后事件中重命名

C# 将Web角色部署到Azure时在生成后事件中重命名,c#,wcf,azure,azure-web-roles,post-build-event,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”): 当我构建这些项目时,

我有一个很大的WCF项目,它由许多子项目组成(web角色中的网站、后端、WPF客户端、客户端库等)。每个项目都有3个配置文件:

  • app.config-用于本地测试
  • app.release.config-具有生产性服务地址
  • app.test.config-具有测试服务器的服务地址
根据当前解决方案配置(调试/发布/测试),使用生成后事件重命名这些文件。因此,不同项目中的生成后事件如下所示(web角色项目中除外,它是“web.config”而不是“app.config”):

当我构建这些项目时,重命名是根据当前的构建配置完成的,并且一切都按照预期工作,因此我确信构建事件与现在一样正常。但是,一旦我发布到azure或打包“azure云服务”(其中包含web角色),当我检查csx文件夹或cspkg包的内容时,就不会进行重命名

发布到Azure时,是否有任何智能方法可以根据所选的生成配置使用不同的配置?到目前为止,我所做的是在发布之前重命名所有项目中的配置文件。但这是一项相当烦人的任务,而且容易出错。一定有更好的方法


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

您将生成后事件放在何处

您需要将构建后事件放在云服务上,而不是放在WCF项目上,请参见附带的屏幕截图:

右键单击>属性>生成事件

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