chore: 首次簽入 Thinkyu ASP.NET 專案
- 加入 Visual Studio / ASP.NET .gitignore - 排除建置輸出、IDE 設定、NuGet packages、大型 MSI 安裝檔
This commit is contained in:
@@ -0,0 +1,67 @@
|
||||
using System;
|
||||
using System.Collections;
|
||||
using System.ComponentModel;
|
||||
using System.Configuration;
|
||||
using System.Configuration.Install;
|
||||
using System.IO;
|
||||
using System.Reflection;
|
||||
using System.Xml;
|
||||
using static System.Collections.Specialized.BitVector32;
|
||||
|
||||
[RunInstaller(true)]
|
||||
public class ConfigInstaller : Installer
|
||||
{
|
||||
public override void Install(IDictionary stateSaver)
|
||||
{
|
||||
base.Install(stateSaver);
|
||||
|
||||
string appPath = Context.Parameters["targetdir"];
|
||||
string apiBaseUrl = Context.Parameters["apibaseurl"];
|
||||
|
||||
string configPath = Path.Combine(appPath, "報到系統客戶端.exe.config");
|
||||
|
||||
var xml = new XmlDocument();
|
||||
xml.Load(configPath);
|
||||
|
||||
var nsmgr = new XmlNamespaceManager(xml.NameTable);
|
||||
// applicationSettings 沒 namespace,不用加
|
||||
|
||||
var node = xml.SelectSingleNode(
|
||||
"/configuration/applicationSettings/報到系統客戶端.Properties.Settings" +
|
||||
"/setting[@name='ApiBaseUrl']/value"
|
||||
);
|
||||
|
||||
if (node == null)
|
||||
throw new Exception("找不到 ApiBaseUrl");
|
||||
|
||||
node.InnerText = apiBaseUrl;
|
||||
|
||||
xml.Save(configPath);
|
||||
|
||||
//var config = ConfigurationManager.OpenExeConfiguration(exeConfig);
|
||||
|
||||
//// 取得 applicationSettings
|
||||
//var appSettings = config.GetSection("applicationSettings/報到系統客戶端.Properties.Settings") as ClientSettingsSection;
|
||||
//if (appSettings == null)
|
||||
// throw new Exception("找不到 applicationSettings/報到系統客戶端.Properties.Settings 區段");
|
||||
|
||||
//// 尋找設定值
|
||||
//SettingElement target = null;
|
||||
//foreach (SettingElement s in appSettings.Settings)
|
||||
//{
|
||||
// if (s.Name == "ApiBaseUrl")
|
||||
// {
|
||||
// target = s;
|
||||
// break;
|
||||
// }
|
||||
//}
|
||||
//if (target == null)
|
||||
// throw new Exception("找不到 ApiBaseUrl");
|
||||
|
||||
//// 寫入設定值
|
||||
//target.Value.ValueXml.InnerText = apiBaseUrl;
|
||||
|
||||
//// 存檔
|
||||
//config.Save(ConfigurationSaveMode.Modified);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user