我試圖使用Windows安裝程序的應用程序,因爲它的安裝方法。當安裝成功時,我想要獲取主要輸出所在的路徑,這是我在安裝程序中配置的。在我的情況下,主輸出位於文件夾[ApplicationData(Installroot)]\Bin\
。C#安裝項目自定義操作將安裝目錄保存到自定義設置文件
我還有一個名爲App.Settings的自定義設置文件,位於我的類庫中,它控制幾個設置,如文件位置相對於安裝位置。
所以這個想法是,當安裝成功時,它應該調用App.Settings並將安裝文件夾保存到設置文件。
我已經做了一個Install類並把它放在類庫中。我不確定它是否應該在該項目中。 這是安裝類的代碼:
using System.Collections;
using System.ComponentModel;
namespace WaspbaneModels
{
[RunInstaller(true)]
public partial class Installer : System.Configuration.Install.Installer
{
public Installer()
{
InitializeComponent();
}
public override void Install(IDictionary stateSaver)
{
base.Install(stateSaver);
}
public override void Commit(IDictionary savedState)
{
base.Commit(savedState);
SettingsControl.BaseURL = Context.Parameters["assemblypath"];
SettingsControl.Save();
}
public override void Rollback(IDictionary savedState)
{
base.Rollback(savedState);
}
public override void Uninstall(IDictionary savedState)
{
base.Uninstall(savedState);
}
}
}
在此代碼SettingsControl是負責設置的簡單地用一些性質的類。我使用這個類,以便我的Windows窗體項目也可以訪問這些設置。
在自定義操作選項卡中,我還將主輸出添加到所有內容。我也不確定這是否正確,因爲我認爲主要輸出包含所有.dll文件,包括類庫。
我不確定從哪裏繼續,但是因爲設置沒有保存。我只需在應用程序啓動時添加一個消息框,就可以檢查該設置的價值。
任何對該項目的更多數據感興趣的人都會問。我只是不會立即發佈所有內容。
編輯:
一些更多的測試後,我設法找到了該安裝程序類沒有被要求。我添加了一些當方法被調用但是什麼也沒有發生時寫入文件的東西。
因此,我現在的問題是:如何正確地將自定義操作添加到安裝項目?
所以,如果我得到它的權利,提交後,找到設置文件,並直接編輯它? – Thodor12
我偶然發現了這個:http://stackoverflow.com/questions/2943438/visual-studio-2008-installer-custom-action-breakpoint-not-firing。 VS2015也是如此嗎?如果是這種情況,那麼我知道我的代碼爲什麼不起作用。 – Thodor12
基於你的問題,這似乎不相關,因爲它涉及調試和缺少base.Install()。 – PhilDW