2

根据描述,您似乎可以更改应用程序设置中的“环境”以应用不同的 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.config”,因为没有找到。

我是否遗漏或误解了什么?

编辑:作为参考,这里是源代码库:https ://github.com/jrmitch120/ChallengeBoard

4

2 回答 2

1

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

在此处输入图像描述

于 2013-03-18T19:39:06.153 回答
0

快速解决:

AppHarbor 有自己的设置,这些设置在部署期间应用。其中一项设置包含 AppHarbor 连接字符串,另一项是别名,它需要与 web.config 中的连接字符串的键相匹配。

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

一些问题的更大描述:

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

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

  2. 构建后(并且在您看不到的单独文件夹中),构建的输出通过 App Harbors 自己的转换进行。因为这是在构建之外,所以需要存在文件才能发生这种情况。Web.Release.Config 必须设置为内容的构建操作,否则此转换步骤将无法获取它

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

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/

我终于得到了正确应用的设置,并且在我自己的站点中应用了转换,但花了很长时间。我希望这个答案能帮助 somonelse

于 2014-05-23T15:14:21.397 回答