5

私はWix3.6を試していますが、これが現在の外観です。

<?xml version="1.0" encoding="UTF-8"?>

<Directory Id="TARGETDIR" Name="SourceDir">
    <Directory Id="myappINSTALLDIR" Name="myapp5Service">
        <Component Id="SampleServiceComponent" DiskId="1" Guid="6f51c0f3-776c-4aec-a200-1f199352c6c3" Win64="yes">
          <File Id="myapp5.WindowsService.exe" Name="myapp5.WindowsService.exe" Source="$(var.myapp.WindowsService.TargetDir)\myapp5.WindowsService.exe" KeyPath='yes'/>
          ...

          <ServiceInstall Id="InstallmyappService" DisplayName="myappService" Name="myapp5.WindowsService.exe" Description="myapp 5 Service - För effektivare och enklare operationsplanering" Account="LocalSystem" ErrorControl="normal" Start="auto" Type="ownProcess" Vital="yes" />
          <ServiceControl Id="ControlmyappService" Name="myapp5.WindowsService.exe" Start="install" Stop="both" Remove="uninstall" Wait="yes" />
        </Component>
    </Directory>
</Directory>


<WixVariable Id="WixUIBannerBmp" Value="$(var.ProjectDir)\Image\myappTopBanner.bmp" />
<WixVariable Id="WixUIDialogBmp" Value="$(var.ProjectDir)\Image\myappDialogBackground.bmp" />

<Property Id="WIXUI_INSTALLDIR" Value="myappINSTALLDIR" />
<UIRef Id="WixUI_InstallDir" />

<Feature Id="ProductFeature" Title="Wix_myapp.WindowsService" Level="1">
  <ComponentRef Id="SampleServiceComponent" />
</Feature>
<Media Id="1" Cabinet="SampleServiceComponent.cab" EmbedCab="yes" />
</Product>

次に、1つのappSettingと1つのbaseadress(WCF)がapp.configに設定されているダイアログをWixセットアップに追加する必要があります。これは、WixがインストールするWindowsサービスの名前を決定するため、ほとんどの場合、インストールの前に実行されます。

そして、例は素晴らしいでしょう!

編集1:

    <WixVariable Id="WixUIBannerBmp" Value="$(var.ProjectDir)\Image\myappTopBanner.bmp" />
<WixVariable Id="WixUIDialogBmp" Value="$(var.ProjectDir)\Image\myappDialogBackground.bmp" />

<Property Id="SERVICEADDRESS" Value="http://serviceaddress"/>
<Property Id="WIXUI_INSTALLDIR" Value="myappINSTALLDIR" />
<UIRef Id="WixUI_InstallDir" />

<util:XmlFile Id="UpdateBaseAddress"
  Action="setValue"
  File="$(var.myapp.WindowsService.TargetDir)\myapp5.WindowsService.exe.config"
  SelectionLanguage="XPath"
  Permanent="yes"
  ElementPath="/configuration/applicationSettings/ServiceName"
  Name="baseAddress" Value="[SERVICEADDRESS]" />

<Feature Id="ProductFeature" Title="Wix_myapp.WindowsService" Level="1">
  <ComponentRef Id="SampleServiceComponent" />
</Feature>
<Media Id="1" Cabinet="SampleServiceComponent.cab" EmbedCab="yes" />
</Product>

4

1 に答える 1

10

WixUtilExtension.dll への参照をインストーラー プロジェクトに追加し、XmlFile を使用して app.config を次のように更新できます。

<Property Id="SERVICEADDRESS" Value="http://serviceaddress"/>

<util:XmlFile Id="UpdateBaseAddress" 
  Action="setValue" 
  File="[DirApplication]$(var.app.config)"
  SelectionLanguage="XPath" 
  Permanent="yes"
  ElementPath="/configuration/applicationSettings/...."
  Name="baseAddress" Value="[SERVICEADDRESS]" />

ディレクトリと .config ファイルの名前を設定する必要があることに注意してください ( $(var. ProjectName .TargetFileName).config を使用すると、自動的に解決されます) 。

于 2012-12-20T09:52:17.853 に答える