12

我通常把我的連接字符串到一個單獨的文件,加入這樣的事情在web.config中:在vs 2012中單擊發布:如何刪除_ConnectionStringsToInsert?

<connectionStrings configSource="WebConnection.config" /> 

我剛剛安裝VS 2012,它會自動拿起我現有的發佈設置。 然而,當我做了webpublish現在本身增加了兩個連接字符串,所以我在部署目標的web.config現在看起來像這樣:

<connectionStrings configSource="WebConnection.config"> 
    <add name="EF.Model.DbContext" connectionString="EF.Model.DbContext_ConnectionString" providerName="System.Data.SqlClient" /> 
    <add name="Migrations.Db.MigrationDb" connectionString="Migrations.Db.MigrationDb_ConnectionString" providerName="System.Data.SqlClient" /> 
    </connectionStrings> 

當然,這會產生一個錯誤(節點的內容必須是空的當使用configSource時)。 我注意到,在新生成的.pubxml文件(其中發佈設置現在存儲)有下面幾行:

<ItemGroup> 
    <_ConnectionStringsToInsert Include="EF.Model.DbContext" /> 
    <_ConnectionStringsToInsert Include="Migrations.Db.MigrationDb" /> 
    </ItemGroup> 

如何刪除呢? :)如果我從文件中刪除它們,每當我編輯發佈設置時,Web發佈對話框都會添加它們。

+0

對不起,你遇到了這個問題,我們已經提交了一個錯誤,並會嘗試和照顧這一點。 –

+3

@SayedIbrahimHashimi你知道這個bug是否解決了嗎?我遇到了這個問題。 – IanW

回答

6

我突然解決了,通過轉到項目屬性「Package/Publish Web」並選中「包含在P/P SQL選項卡中配置的所有數據庫」標記(並且我沒有任何配置的數據庫:)) 。

做完這個並從.pubxml中刪除提到的行後,一切都很順利。

似乎是一個黑客,但它是很長的路要走,我:)

@Sayed,感謝確認這是一個錯誤,希望能對大家解決!

+4

此修復似乎不會使這些行保持不用。無論何時進入「發佈」對話框中的連接字符串配置頁面,它們都會返回。 – Brannon

1

在發佈配置文件的設置選項卡,清除使用此連接字符串在運行時複選框和應用代碼首先遷移複選框。確保已啓用遷移,或者使用此連接字符串框不會保持清除狀態,即使此時您可能必須在每次打開配置文件時再次清除它。

4

我想出了一個(可能)較少hacky的解決方案,用於繞過發佈中的bug,強制發現實體框架代碼第一個數據庫上下文有一個連接字符串。這仍然是我在VS中2013年

在你的web.config的問題,增加了連接字符串的虛擬版本:

<add name="DbContextName" connectionString="This is a dummy connection string to bi-pass publish bug." providerName="System.Data.SqlClient" /> 

現在,設置一個變換所需的配置爲其創建發佈包。詳細瞭解它here。 。

在你的web.config配置{}文件,請使用以下變換來去除連接字符串:

<connectionStrings> 
    <add name="DbContextName" xdt:Transform="Remove" xdt:Locator="Match(name)"/> 
</connectionStrings> 

這個轉換運行後發佈在pubxml運行變換,所以它清除掉不需要的連接字符串。

+0

如果您沒有根據tdykstra的答案啓用遷移,這似乎是唯一的解決方案。 Web Deploy進程不會嘗試添加連接字符串,如果它看到它們已經位於web.config文件中,並且構建轉換將在構建過程中將它們從web.config文件中愉快地移除。 – Clint

+0

這個解決方案也適用於我,我所做的唯一更改是在** Web.Release.config **上,使用此連接字符串'刪除所有連接字符串一個班輪。 –