【问题标题】:Why are config transforms not applied when I manually publish a console app as an Azure webjob?当我将控制台应用程序手动发布为 Azure Web 作业时,为什么没有应用配置转换?
【发布时间】:2017-08-01 11:46:41
【问题描述】:

我有一个控制台应用程序,我将其作为 Web 作业部署到 Azure。我通过右键单击项目并选择“Publish as Azure WebJob”从 Visual Studio 2015 手动执行此操作。

我现在需要将此应用程序部署到几个不同的环境(例如:开发、测试、产品等)。在每个环境中,控制台应用都需要以不同的配置设置运行。

为了完成这项工作,我安装了 Slow Cheetah v2.5.48 并设置了多个配置转换文件 - 每个环境一个。

我还在我的项目中创建了专用的发布配置文件 - 每个环境一个 - 我确保配置文件名称与配置转换文件的名称匹配。

当我通过 VS 中的发布向导手动发布时(如上所述),我发现未应用配置转换。相反,“基础”.config 文件存在于目标应用服务中。

为什么以这种方式发布时没有应用转换,我该如何解决?

【问题讨论】:

  • 你看过这个答案吗? stackoverflow.com/a/34279432/4167200
  • 谢谢。不幸的是,这对我不起作用(指的是根据该问题的最高投票答案添加<TransformOnBuild>True</TransformOnBuild>

标签: visual-studio azure azure-webjobs config-transformation


【解决方案1】:

根据你的描述,我建议你可以先检查一下你已经有build configuration叫“dev”,“test”如下图。

那么我建议您可以检查您的项目中是否有正确的应用配置文件,如下所示。

最后,您可以确保选择了正确的构建配置。

另外,我建议你可以打开你的 .csproj 文件并确保 App.dev.config 标签的 IsTransformFile 为 true。

<None Include="App.dev.config">
      <DependentUpon>App.config</DependentUpon>
      <IsTransformFile>True</IsTransformFile>
    </None>

【讨论】:

  • 谢谢。添加与我的发布配置文件同名的构建配置就可以了。需要注意的一点是,我必须在发布向导的“设置”选项卡中选择此配置。
【解决方案2】:

我建议你试试:

< xdt:Transform="Replace"> 

【讨论】:

  • 嗨@gaurav-agarwal。恭喜您获得第一个 StackOverflow 答案!我的文件中已经有了这种类型的转换。问题似乎是文件根本没有被读取,不管里面有什么。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-10-13
  • 1970-01-01
  • 1970-01-01
  • 2016-11-04
  • 1970-01-01
  • 2011-04-22
相关资源
最近更新 更多