0

在一個Windows服務項目,與項目安裝我試過如下:如何在安裝時更改.NET應用程序/用戶設置?

[RunInstaller(true)] 
public partial class ProjectInstaller : Installer 
{ 
    public ProjectInstaller() 
    { 
     InitializeComponent(); 
    } 

    protected override void OnBeforeInstall(System.Collections.IDictionary savedState) 
    { 
     base.OnBeforeInstall(savedState); 
     Settings.Default.ASetting = "aValue"; 
     Settings.Default.Save(); 
    } 

    protected override void OnAfterInstall(System.Collections.IDictionary savedState) 
    { 
     base.OnAfterInstall(savedState); 
     Settings.Default.ASetting = "aValue"; 
     Settings.Default.Save(); 
    } 
} 

但是當我檢查config文件安裝後,一箇舊的價值仍然存在。在通常的[userfolder] \ AppData \ Local中沒有.config文件

對於我而言,在安裝時間內定義此變量非常重要,因爲我將從安裝項目中的用戶輸入接收其值。這裏的常量值僅用於測試目的。

回答

1

該框架將不允許您在安裝時更改設置,因爲應用程序設置是隻讀的,並且在服務安裝並運行(用戶名下)之前沒有用戶上下文。

我發現的唯一解決方案是使用配置文件的純XML操作來更改設置。我重寫Install方法並更改文件本身。

+0

我寧願寫信給Windows註冊表,也不願如你所說。除非我找到一個工作代碼來複制/粘貼。 – 2009-10-20 10:50:53

相關問題