我的项目 Web.config 使用以下构造在单独的文件中定义了连接字符串:
<connectionStrings configSource="ConnectionStrings.config">
</connectionStrings>
在项目上进行协作或部署项目时,这很方便。但是,我无法让VSO Build工作,因为它向我显示以下错误:
C:\ Program Files (x86)\ MSBuild \ 14.0 \ bin \ Microsoft.Common.CurrentVersion.targets(4105, 5)无法复制文件 “C:\ a \ 1 \ s \ MyProject \ ConnectionStrings.config”,因为它不是 找到。
答案 0 :(得分:2)
必须已在web.config中定义连接字符串,并且连接字符串名称必须与您在Azure中设置的连接字符串名称相同。然后Azure可以更新连接字符串。请参阅Azure中的说明:
连接字符串以类似的方式工作,只需少量附加 需求。请记住,之前有一个连接字符串 称为“example-config_db”,已与网站相关联。 如果网站的web.config文件引用相同的连接字符串 在配置部分,然后是Windows Azure 网站将在运行时自动更新连接字符串 使用门户网站中显示的值。
但是,如果Windows Azure网站找不到连接字符串 使用来自web.config的匹配名称,然后是连接字符串 在门户网站中输入的内容仅作为环境提供 变量(如前所示)。
并且
请记住,对于Windows Azure网站来说,要覆盖 连接字符串并在.NET Framework中实现它 连接字符串配置集合,连接字符串必须 已经在web.config中定义。对于这个示例网站, web.config已更新,如下所示:
![]()
有关详细信息,请参阅此链接:https://azure.microsoft.com/en-us/blog/windows-azure-web-sites-how-application-strings-and-connection-strings-work/
答案 1 :(得分:1)
我知道你已经标记了你的问题,但我想我应该在这里发布我的解决方案给任何人都有同样的问题。 我在其他环境中为connectionStrings部分创建了一个转换,其虚拟连接字符串值如下所示:
<connectionStrings xdt:Transform="Replace">
<add name="Your_ConnectionString_Name" connectionString="dummy_value"
providerName="System.Data.SqlClient" />
</connectionStrings>
这样我就可以在我的本地机器中保留configSource属性,当我部署到其他环境时,我有一些虚拟连接字符串供Azure替换。