AppHarbor Environment似乎不会影响web.config转换

时间:2013-03-18 19:36:38

标签: appharbor

根据描述,您似乎可以更改应用程序设置中的“环境”以应用不同的web.config转换。

  

环境

     

环境名称会影响我们应用的配置转换。名为“Release”的环境将“Web.Release.config”应用于“Web.config”文件。

然而,在这样做之后,它似乎仍在尝试使用Web.Release.config进行转换。

** C:\ Program Files(x86)\ MSBuild \ Microsoft \ VisualStudio \ v11.0 \ WebApplications \ Microsoft.WebApplication.targets(182,5):错误MSB3030:无法复制文件“Web.Release。配置“因为没找到。

我是否遗漏或误解了某些内容?

编辑:供参考,以下是源代码:https://github.com/jrmitch120/ChallengeBoard

2 个答案:

答案 0 :(得分:1)

确保您的解决方案中的所有配置转换在Visual Studio中的首选项下的“构建操作”中标记为“内容” - 重新发送并且应该可以正常工作。

enter image description here

答案 1 :(得分:0)

快速修复:

AppHarbor有自己的设置,可在部署期间应用。其中一个设置包含AppHarbor连接字符串,另一个是Alias,需要匹配web.config中连接字符串的键。

如果您更改以下内容" SQLSERVER_CONNECTION_STRING_ALIAS"在AppHarbor中匹配您的连接字符串密钥这将导致在部署期间应用App Harbour SQL Server Connection,这可能与大多数人真正想要的一样多。对于我来说,在正常的webconfig转换之外维护SQL连接设置(和其他部署设置)感觉更好。

对一些问题的更大描述:

至于我从一个下午的诊断和尝试事情可以看出以下步骤,这可能有助于解释帮助诊断为什么事情没有按预期行事:

  1. AppHarbor运行构建并运行测试,(您可以从App Harbor站点下载此输出)

  2. Post Build(在一个你看不到的单独文件夹中),Build Is Put通过App Harbors自己的转换。因为这是在Build之外,所以需要存在文件才能发生这种情况。必须将Web.Release.Config设置为内容的构建操作,否则此转换步骤将无法选择

  3. 转换后,会应用一组其他设置。连接字符串将被覆盖等,请参阅下面的博客文章,了解其工作原理:

  4. http://chandermani.blogspot.co.uk/2012/03/nerddinner-on-appharbor.html

    总结中有很多相互作用和可能出错的事情。

    1. 步骤3有可能覆盖您在步骤2中尝试进行的变换,使变换看起来不起作用。

    2. Web.Release.Config文件有可能未设置为内容。

    3. 最后因为这是AppHarbors稍微定制的转换,它在构建之后发生,它似乎总是与Visual Studio中发生的一致。我遇到了一个问题,我在web.config中缺少一个阻止转换发生的设置。您可以使用一个测试工具来检查转换在此处的显示方式:https://webconfigtransformationtester.apphb.com/

    4. 我终于正确地应用了设置,并且转换在我自己的网站中应用但是花了很长时间。我希望这个答案有助于somonelse