2010-06-16 77 views
13

今天我開始在VS 2010中使用web.config轉換。首先,我嘗試了同樣的hello world示例,該示例在很多博客文章中都有提供本主題 - 更新連接字符串。web.config轉換不適用於發佈或構建安裝包

我創建了下面顯示的最小示例(與this blog中的示例類似)。問題是,無論何時在.csproj文件上右鍵單擊 - >「發佈」或右鍵單擊 - >「構建部署包」,我都沒有得到正確的輸出。而不是一個轉換的web.config,我得到沒有 web.config,而是包含兩個轉換文件。

我在做什麼錯?任何幫助感激地收到!

Web.config文件:

<?xml version="1.0"?> 
<configuration xmlns="http://schemas.microsoft.com/.NetConfiguration/v2.0"> 
    <connectionStrings> 
    <add name="ConnectionString" 
    connectionString="server=(local); initial catalog=myDB; 
    user=xxxx;password=xxxx" providerName="System.Data.SqlClient"/> 
    </connectionStrings> 
</configuration> 

Web.debug.config:

<?xml version="1.0"?> 
<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform"> 
    <connectionStrings> 
    <add name="ConnectionString" 
     connectionString="server=DebugServer; initial catalog=myDB; 
     user=xxxx;password=xxxx" 
     providerName="System.Data.SqlClient" 
     xdt:Transform="SetAttributes" 
     xdt:Locator="Match(name)"/> 
    </connectionStrings> 
</configuration> 

Web.release.config:

<?xml version="1.0"?> 
<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform"> 
    <connectionStrings> 
    <add name="ConnectionString" 
     connectionString="server=ReleaseServer; initial catalog=myDB; 
     user=xxxx;password=xxxx" 
     providerName="System.Data.SqlClient" 
     xdt:Transform="SetAttributes" 
     xdt:Locator="Match(name)"/> 
    </connectionStrings> 
</configuration> 

回答

23
這些事情

不可避免的是,得到的答覆竟是凝視着我的臉。在web.config的<configuration>節點中存在xmlns="http://schemas.microsoft.com/.NetConfiguration/v2.0"意味着我的變換不匹配。刪除它解決了這個問題。

+0

在刪除xml名稱空間屬性時是否存在副作用?我遇到了和你一樣的問題,並希望採用與您一樣的修復策略,但只是好奇它是否會打破已有的舊版.NET 2.0網站...... – SpaceBison 2012-09-13 10:48:05

+1

我有同樣的問題問題,但我在web.config中的配置節點沒有定義的名稱空間 – 2014-03-17 22:07:39

+1

@SpaceBison - 根據[本文](http://weblogs.asp.net/scottgu/432077),命名空間是不必要的。事實上,刪除它修復了智能感知。 – NightOwl888 2014-06-02 09:16:01

2

在你web.release.config和web.debug.config文件添加相同的命名空間的變換,ALA

<?xml version="1.0"?> 
<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform" xmlns="http://schemas.microsoft.com/.NetConfiguration/v2.0"> 

...

0

我也有類似的問題,並修復是因爲我爲我的環境設置了「解決方案配置」,但我從未創建過符合解決方案配置的項目配置。

進行檢查:

  1. 在「生成」 - >「解決方案配置」
  2. 更改「活動 解決方案配置」,並確保您的項目配置 排隊根據配置文件你已經命名了。
0

工作對我來說這樣的:

(1)菜單中選擇Build - 配置管理器

(2)挑我的情況下積極的解決方案發布並正確配置它(我有選擇的調試因此沒有轉換從Publish開始應用)

相關問題