2012-05-09 20 views
1

特定のサービスを開始および停止するアプリケーションがあります。しかし、そのサービスは、私はプロジェクトをビルドどのような構成に応じて、異なる名前が付けられています。私のWiXセットアップでは、私はvar.ServiceNameは、ビルドプロセス中に指定したインクルードファイルから来ているC#プロジェクトとWiXの間で情報を共有する

<ServiceInstall 
    <!-- etc... --> 
    Name='$(var.ServiceName)' 
    DisplayName='$(var.ServiceDisplayName)' /> 

を持っています。 C#コードで同じサービス名を使用する必要がありますが、このアプローチの問題は、サービス名が2つの異なる場所に書き込まれることです。サービス名を1か所に取得するにはどうすればよいですか?

答えて

1

レジストリを使用すると、オプション可能性がありますが、サービスをインストールするので、あなたの製品がコピーに展開をされていませんとにかくそう。あなたのC#コードは、簡単にアクセスすることができ、レジストリキー、にサービス名を入れて考えてみましょう。

+0

WiXマニュアルの関連情報:http://wix.sourceforge.net/manual-wix3/write_a_registry_entry.htm – Phil

0

C#コードはどのようにサービス名を取得していますか? configからピックアップしている場合は、インストール時にconfigを編集して、インストーラで設定ファイルにサービス名を書き込むことができます。これにより、コードをWiXインクルードで指定した値に合わせることができます。

EDIT。 質問に対する回答。編集するとは、インストール時に設定を編集するようにインストーラを設定することです。私はそれを "手で"(またはユーザーに要求する)ことは悪い考えであることに同意します。これはWiXで設定できます。あなたは、WiXのは、このスニペットのようになりますXML File custom actionを使用する必要があります。

<Component ...> 
    <UTIL:XmlConfig> 
    Id=... 
    On="install" 
    Action="create" 
    File=[.. config file ID goes here ...] 
    ElementPath="//myElement/livesHere 
    Node="value" 
    Name="someNodeName" 
    Value="some value to set" 
    ... 

私は本当のスニペットを貼り付けることはできません申し訳ありませんが、私たちのWiXの設定は、独自:(うまくいけば、そのドキュメントのリンクはあなたを右に表示されますです

+0

WiXファイルと一致するように設定ファイルを編集する最も良い方法は何ですか?また、インストール後に変更してはならないものなので、テキストエディタにはアクセスできません。組み込みリソースとしての設定ファイルが動作します。 – Phil

+0

回答を編集します。 –

0

場合設定に基づいて名前を付けていますが、$(var.ProjectName.Configuration)(ProjectNameはあなたのC#プロジェクトの名前)をサービス名で指定しますか?

+0

これは良い考えです。私の特定のケースでは、プロジェクトの設定名はWindowsサービスの名前ではありません。 – Phil

+0

その場合は、フルネームを作成したり変更したりすることができます。彼らは単にArtibritarilyデバッグとリリースと呼ばれ、あなたが好きなものに名前を変更することができます。 –

+0

その時点で、プロジェクト構成名をC#コードにどのように取得できますか? – Phil

関連する問題