.NET添加新項目-配置不一樣環境參數

添加新項目-配置不一樣環境參數

添加新項目後,須要對配置管理器進行設置。默認新加的項目只有debug和releasehtml

 

 

現加其餘環境(dev、uat...)的配置【經過項目文件.csproj來加,拷貝其餘項目的節點】,而後同步(即每一個都單擊切換一下)數據庫

<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Test|AnyCPU'">

    <OutputPath>bin\Test\</OutputPath>

  </PropertyGroup>

  <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'UAT|AnyCPU'">

    <OutputPath>bin\UAT\</OutputPath>

  </PropertyGroup>

  <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Prod|AnyCPU'">

    <OutputPath>bin\Prod\</OutputPath>

  </PropertyGroup>

  <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Testu|AnyCPU'">

    <OutputPath>bin\Testu\</OutputPath>

  </PropertyGroup>
View Code

而後從新生成項目,再各個環境切換一下【即同步】。編輯器

即切換配置管理器中的「活動解決方案配置」,下面項目的配置也選擇爲同樣的。ide

爲了更好的編譯不一樣的配置,須要作第二步,App.config 配置轉換工具

App.config 配置轉換

參考:網站

http://www.javashuo.com/article/p-fvpjysga-hr.htmlui

http://www.javashuo.com/article/p-qdbdtmkq-gk.htmlspa

問題debug

部署項目時,經常須要根據不一樣的環境使用不一樣的配置文件。例如,在部署網站時可能但願禁用調試選項,並更改鏈接字符串以使其指向不一樣的數據庫。在建立 Web 項目時,Visual Studio 自動生成了 Web.configWeb.Debug.configWeb.release.config這3個不一樣的配置文件,並提供了轉換工具,用於在部署項目時自動轉換配置文件內容。具體能夠參考這2篇文章:如何:在部署 Web 應用程序項目時轉換 Web.config 和 用於 Web 應用程序項目部署的 Web.config 轉換語法 。調試

然而在其餘項目類型中(如控制檯應用程序、Windows 服務),並無現成的配置文件的轉換功能。

作法

一、咱們在項目中添加 App.configApp.Debug.configApp.Release.config 這3個配置文件。

二、打開項目所在目錄,用記事本或其餘文本編輯器打開 .csproj 文件。

三、在 最後一個PropertyGroup 標籤下添加以下內容:

<PropertyGroup>
  <ProjectConfigFileName>App.config</ProjectConfigFileName>
</PropertyGroup>

四、在 ItemGroup 標籤中找到和 App.configApp.Debug.configApp.Release.config 相關的項目,替換爲

<None Include="App.config" />
<None Include="App.Debug.config">
    <DependentUpon>App.config</DependentUpon>
</None>
<None Include="App.Release.config">
    <DependentUpon>App.config</DependentUpon>
</None>

五、在最後一個 Import 標籤後面添加:

<Import Project="$(MSBuildExtensionsPath)\Microsoft\VisualStudio\v10.0\Web\Microsoft.Web.Publishing.targets" />

路徑:C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\MSBuild\Microsoft\VisualStudio\v15.0\Web這裏的v10.0 須要根據本身vs的版原本替換。

【版本不對的話 會彈出錯誤框,仔細看路徑】

六、在 Import 標籤後面添加 Target 標籤:

<Target Name="AfterBuild">
  <TransformXml Source="@(AppConfigWithTargetPath)" Transform="$(ProjectConfigTransformFileName)" Destination="@(AppConfigWithTargetPath->'$(OutDir)%(TargetPath)')" />
</Target>

七、切換到 Visual Studio , 從新加載項目。

八、這時查看 Visual Studio 能夠看到 App.config 的組織方式和 Web.config 同樣了。

九、如今就可使用 用於 Web 應用程序項目部署的 Web.config 轉換語法 這篇文章中提到的轉換語法了。

例如須要替換 connectionStrings , App.config 有以下配置:

<Paths configSource="xxx\Debug\yyy.config" />

只須要修改 App.Release.config 爲以下內容便可:

<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">
  <Paths configSource="xxx\Dev\yyy.config" xdt:Transform="Replace" />

這樣在選擇 Release 配置時,connectionStrings 會自動替換成 App.Release.config 中的值。查看 bin\Release 目錄下的 config 文件能夠進行驗證。

相關文章
相關標籤/搜索