Nov 5, 2012
4 mins read
使用套件的時後,有時會需要指定設定檔,例如自訂的Section,或特定AppSetting的值 在打包的時後,只要在你想轉換的檔案後面加上.transform的副檔名就行了 以web.config為例,只要新增一個檔案名為web.config.transform在套件中,安裝套件的時後就會合併這個檔案的內容
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<appSettings>
<add key="aa" value="aa" />
<add key="bb" value="bb" />
<add key="cc" value="cc" />
<add key="dd" value="dd" />
</appSettings>
</configuration>
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<appSettings>
<add key="aa" value="123" />
<add key="bb" value="" />
<add key="cc" />
</appSettings>
</configuration>
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<appSettings>
<!– 原來的值不變 –>
<add key="aa" value="123" />
<add key="bb" value="" />
<!– 合併的資料 –>
<add key="aa" value="aa" />
<add key="bb" value="bb" />
<add key="cc" value="cc" />
<add key="dd" value="dd" />
</appSettings>
</configuration>
程式碼轉換的方式,是用.pp的副檔名 以用來動態掛載Application_Start的WebActivator套件為例 慣例是在App_Start資料夾下面,新增一段程式碼
using System.Web;
[assembly: WebActivator.PostApplicationStartMethod(typeof(WebApplication2.App_Start.Hello), “HelloWorld”)]
namespace WebApplication2.App_Start
{
public class Hello
{
public static void HelloWorld()
{
HttpContext.Current.Application.Add(“hello”, “world”);
}
}
}
using System.Web;
[assembly: WebActivator.PostApplicationStartMethod(typeof($rootnamespace$.App_Start.Hello), “HelloWorld”)]
namespace $rootnamespace$.App_Start
{
public class Hello
{
public static void HelloWorld()
{
HttpContext.Current.Application.Add(“hello”, “world”);
}
}
}
比較常用的應該是$rootnamespace$和$assemblyname$ 詳細可置換的符號可以參考ProjectProperties Properties
Sharing is caring!