編輯:更加精細的方法可以在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將覆蓋現有的。
感謝您的回答...我認爲它會更簡單。就像一個視覺工作室的菜單.. ;-) – bAN
在MS的防守中,這個過程有很多反駁的論點。我確實看到在未來VS版本中提及它作爲一個功能,但不是在官方文章中,所以不要引用我的話。 – Smudge202