簡體   English   中英

Visual Studio Online Build - web.config連接字符串configSource

[英]Visual Studio Online Build - web.config connection strings configSource

我的項目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”,因為它沒有找到。

必須已在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/

我知道你已經標記了你的問題,但我認為我應該在這里發布我的解決方案,以解決同樣的問題。 我在其他環境中為connectionStrings部分創建了一個轉換,其虛擬連接字符串值如下所示:

  <connectionStrings xdt:Transform="Replace">
     <add name="Your_ConnectionString_Name" connectionString="dummy_value" 
               providerName="System.Data.SqlClient" />
  </connectionStrings>

這樣我就可以在我的本地機器中保留configSource屬性,當我部署到其他環境時,我有一些虛擬連接字符串供Azure替換。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM