2011-07-05 102 views
9

可能重複:
Use Visual Studio web.config transform for debugging爲什麼我的Web應用程序在調試運行時不使用Web.Debug.config?

我有三個web.config文件轉換的asp.net應用程序。

enter image description here

我在想,如果我啓動調試運行(與選定的調試模式F5)寫在Web.Debug.config的轉換將適用。但它不工作..在Web.config使用的是「基地」之一。

你會告訴我:「轉型是不對的」。但是他們是因爲當我做出部署(右鍵單擊/發佈)與調試版本的配置: enter image description here

渲染的web.config有修改!所以它的工作原理,但調試運行是使用基本的web.config。有沒有我可以配置的地方?

回答

7

編輯:更加精細的方法可以在SO發現: Use Visual Studio web.config transform for debugging

我曾評論,我也希望此功能,但沒有找到一個辦法做到這一點呢。然後決定有一個快速谷歌。

討論here具有使我由cmac3095提供一個可能的解決方案:

我不惹MSBUILD那麼多 但我的解決方案是一個自定義的 目標添加到XXX.Web。這的csproj做 變換,然後添加自定義 「後建設」事件到 XXX.Web.csproj是調用MSBUILD (執行變換)和 XCOPY到轉化 web.config中比原先複製。一邊 效果是,因爲我們有TFS,它 總是包含最後的web.config 該轉化可以是 位usettling(你一直在想一個 您的其他開發人員已經 覆蓋您的設置 - 其中,在 的意義上,它們有; - )....但是,當然,您的設置都在 web.xxxxxx.config中,您可以使用 進行轉換。好的,足夠的解釋。
這裏是你做什麼: 這種複製並粘貼到你XXXX.Web.csproj只是 註釋掉 「目標 NAME =」 BeforeBuild」元素之上...

<UsingTask TaskName="TransformXml" 
AssemblyFile="$(MSBuildExtensionsPath)\Microsoft\VisualStudio\v10.0\Web\Microsoft.Web.Publishing.Tasks.dll" 
/> <Target Name="Transform"> 
    <MakeDir Directories="obj\$(Configuration)" 
Condition="!Exists('obj\$(Configuration)')" 
/> 
    <TransformXml Source="Web.Config" Transform="Web.$(Configuration).config" 
Destination="obj\$(Configuration)\Web.config" 
StackTrace="true" /> </Target> 
<Target Name="AfterBuild"> 
</Target> 

這就是它關於你的xxx.web.config的未來建設 ,後建 將運行自定義的目標和 產生轉化的web.config該 XCOPY將覆蓋現有的。

+0

感謝您的回答...我認爲它會更簡單。就像一個視覺工作室的菜單.. ;-) – bAN

+0

在MS的防守中,這個過程有很多反駁的論點。我確實看到在未來VS版本中提及它作爲一個功能,但不是在官方文章中,所以不要引用我的話。 – Smudge202

相關問題