先安裝 Configuration Transform 套件
App.config 內建立連線字串和自訂變數選項
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<!--連線字串-->
<connectionStrings>
<add name="default" connectionString="" providerName="System.Data.SqlClient" />
</connectionStrings>
<!--自訂變數-->
<appSettings>
<add key="Path" value=""/>
</appSettings>
</configuration>
App.Debug.config 內設定 Debug 環境下- 連線字串:利用 Windows 驗證連線 Local SQL Server
- 自訂變數值:D:\DebugDir
<?xml version="1.0"?>
<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">
<connectionStrings>
<add name="default" connectionString="Data Source=.\SQL2017;Initial Catalog=AdventureWorks;Integrated Security=True" providerName="System.Data.SqlClient" xdt:Locator="Match(name)" xdt:Transform="Replace"/>
</connectionStrings>
<appSettings>
<add key="Path" value="D:\DebugDir\" xdt:Locator="Match(key)" xdt:Transform="Replace" />
</appSettings>
</configuration>
App.Release.config 內設定 Release 環境下- 連線字串:利用 SQL 驗證連線 Product 環境上的 SQL Server
- 自訂變數值:D:\ReleaseDir
<?xml version="1.0"?>
<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">
<connectionStrings>
<add name="default" connectionString="Data Source=IPAddress,PortNumber;Initial Catalog=AdventureWorks;UID=LabDemo;PWD=P@ssword;" providerName="System.Data.SqlClient" xdt:Locator="Match(name)" xdt:Transform="Replace"/>
</connectionStrings>
<appSettings>
<add key="Path" value="D:\ReleaseDir\" xdt:Locator="Match(key)" xdt:Transform="Replace"/>
</appSettings>
</configuration>
設定完成後,可以透過 [Preview Config Transforms] 來比對差異
練習重點紀錄
- 在官方網站教學是只設定 App.Config 和 App.Debug.Config 內容,App.Release.Config 沒有任何設定,就會以預設的 App.Config 為主
- xdt:Locator 和 xdt:Transform 設定可以透過該文章 - ASP.NET Web Deployment using Visual Studio: Web.config File Transformations 來了解,xdt 參數在 App.Debug.Config 和 App.Release.Config 內一定要有喔
最後測試一下 debug 和 release 模式下的 App.Config 設定值
using System;
using System.Configuration;
namespace ConfigurationTransform
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine(ConfigurationManager.ConnectionStrings["default"]);
Console.WriteLine(ConfigurationManager.AppSettings["Path"]);
}
}
}
Debug 模式
此套件已經不支援VS 2022版本
回覆刪除To 吉娃娃
回覆刪除感謝告知