我有一个扩展 System.Configuration.Install.Installer,它在我们的应用程序安装期间运行。我需要访问在 MSI 文件中设置的一些属性(例如 INSTALLDIR,以及我需要检索的一些其他路径)。有没有办法从辅助程序集中访问 MSI 属性?
值得注意的是,我们的安装程序是使用 WiX 3.5 构建的。
在此先感谢您提供任何帮助。
编辑这是我们目前在课堂上的代码。
[RunInstaller(true)]
public class MxServeInstaller : Installer
{
private ServiceInstaller myServiceInstaller;
private ServiceProcessInstaller myServiceProcessInstaller;
public MyProductInstaller()
{
this.myServiceInstaller = new ServiceInstaller();
this.myServiceInstaller.StartType = ServiceStartMode.Automatic;
this.myServiceInstaller.ServiceName = MyProduct.SERVICE_NAME;
this.myServiceInstaller.Description = "Provides software copy protection and token pool management services for the Mx-Suite from Company";
this.myServiceInstaller.ServicesDependedOn = new string[] { "Crypkey License" };
Installers.Add(this.myServiceInstaller);
this.myServiceProcessInstaller = new ServiceProcessInstaller();
this.myServiceProcessInstaller.Account = ServiceAccount.LocalSystem;
Installers.Add(this.myServiceProcessInstaller);
}
public override void Install(System.Collections.IDictionary stateSaver)
{
base.Install(stateSaver);
ServiceController controller = new ServiceController(MyProduct.SERVICE_NAME);
try
{
controller.Start();
}
catch( Exception ex )
{
string source = "My-Product Installer";
string log = "Application";
if (!EventLog.SourceExists(source))
EventLog.CreateEventSource(source, log);
EventLog eventLog = new EventLog();
eventLog.Source = source;
eventLog.WriteEntry(string.Format("Failed to start My-Product!{1}", ex.Message), EventLogEntryType.Error);
}
}
}
我计划添加的是 AfterInstall 的一个阶段,它至少需要知道安装程序中设置的 INSTALLDIR 属性。