2010-06-04 2 views
0

У меня есть служба Windows, созданная в Visual Studio 2005 на C#. У меня есть проект установки и класс ProjectInstaller. У меня также есть код, чтобы программно получить версию из AssemblyFileVersionAttribute.Программная установка версии службы окна на ProjectInstaller

Мне нужно выяснить, где я установил версию, которую я получил (и где должен идти этот код). Я попытался разместить его в методе InitializeComponent в ProjectInstaller.Designer.cs, а затем добавить версию в serviceInstaller1.DisplayName и serviceInstaller1.ServiceName. Это не сработало, и вы не должны изменять содержание этого метода.

Любые идеи?

ответ

0

Вместо того, чтобы добавить код InitializeComponent я просто добавить его в конструкторе ProjectInstaller «s, после вызова InitializeComponent, я устанавливаю ServiceProcessInstaller1.Username и т.д. там без проблем, но я думаю, что вам нужно достать из другой установщик, чтобы установить имя пользователя, чтобы он мог работать, если вы делаете что-то вроде:

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

Извините за задержку в ответе. Меня отвлекали другие проекты. Мне нравится предложение поместить его в конструктор после InitializeComponent. Однако возникает ошибка, указывающая, что «Installers» является свойством и используется как метод. Я попытался изменить это, но не смог найти жизнеспособного решения. Я также попытался поместить его в метод переопределения для OnBeforeInstall, а затем установил свойства DisplayName и ServiceName для serviceInstaller1. Это ничего не делало, поэтому я предполагаю, что необходимо установить serviceProcessInstaller. – jmac

+0

@ user302004: Извините за это, я думаю, что я немного перепутал C# и VB.Net, где он говорит (1), что в моем примере это должно быть [1], вместо этого я обновлю свой ответ. –

+0

Я проверю его утром и дам вам знать. Спасибо за быстрые ответы. – jmac

Смежные вопросы