以编程方式在ProjectInstaller上设置窗口服务的版本

问题描述:

我在C#中的Visual Studio 2005中创建了Windows服务。我有一个安装项目和一个ProjectInstaller类。我也有代码以编程方式从AssemblyFileVersionAttribute获取版本。以编程方式在ProjectInstaller上设置窗口服务的版本

我需要弄清楚我在哪里设置了我已经获得的版本(以及这个代码应该去的地方)。我尝试将它放在ProjectInstaller.Designer.cs的InitializeComponent方法中,然后将版本附加到serviceInstaller1.DisplayName和serviceInstaller1.ServiceName。这不起作用,你不应该修改这个方法的内容。

任何想法?

而不是增加代码InitializeComponent我只是把它添加到ProjectInstaller的构造函数,调用InitializeComponent后,我设置ServiceProcessInstaller1.Username等有没有问题,但我认为你需要得到保持其他安装程序来设置用户名,所以它可能会工作,如果你做这样的事情:

((ServiceProcess.ServiceInstaller)ServiceProcessInstaller1.Parent.Installers[1]).DisplayName 
+0

对不起,我迟到了回应。我在其他项目旁边。我喜欢把它放在InitializeComponent之后的构造函数中的建议。然而,抛出一个错误,指出'安装程序'是一个属性,它的使用就像一个方法。我试图改变这一点,但不能提出一个可行的解决方案。我也尝试将它放入OnBeforeInstall的覆盖方法中,然后为serviceInstaller1设置DisplayName和ServiceName属性。这没有做任何事情,所以我假设需要设置serviceProcessInstaller。 – jmac 2010-06-09 18:03:29

+0

@ user302004:对不起,我想我把C#和VB.Net混淆了一下,它说(1)在我的示例中它应该是[1],而我会用那个更新我的答案。 – 2010-06-09 18:29:31

+0

我会在早上测试它,并让你知道。感谢您的快速回复。 – jmac 2010-06-09 18:53:25