0

カスタムアクションのみを実行し、他には何もしない単純なWIXインストーラーを作成することは可能ですか?次のWIXマークアップを使用して機能させることができることはわかっていますが、これでもプログラムファイルにフォルダーが作成され、CreateFolder行を削除しても機能しません。

<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi" 
 xmlns:util="http://schemas.microsoft.com/wix/UtilExtension" 
 xmlns:netfx="http://schemas.microsoft.com/wix/NetFxExtension">
<Product Id="*" Name="RegisterDotNetISS" Language="1033" Version="1.0.0.0" Manufacturer="MyCompanyhere" UpgradeCode="67825899-d511-4cd3-a8c1-b2dd448a74bd">
    <Package InstallerVersion="200" Compressed="yes" InstallScope="perMachine" />

    <MajorUpgrade DowngradeErrorMessage="A newer version of [ProductName] is already installed." />
    <MediaTemplate />

<PropertyRef Id="NETFRAMEWORK40FULLINSTALLROOTDIR"/>
<PropertyRef Id="NETFRAMEWORK40FULLINSTALLROOTDIR64"/>

<CustomAction Id='aspnetregiisi'  ExeCommand='"[NETFRAMEWORK40FULLINSTALLROOTDIR]\aspnet_regiis.exe" -i -enable' Directory='TARGETDIR' />
<CustomAction Id='aspnetregiisix64'  ExeCommand='"[NETFRAMEWORK40FULLINSTALLROOTDIR64]\aspnet_regiis.exe" -i -enable' Directory='TARGETDIR' />

<InstallExecuteSequence>
  <Custom Action="aspnetregiisi" After="CostFinalize">NOT VersionNT64</Custom>
  <Custom Action="aspnetregiisix64" After="CostFinalize">VersionNT64</Custom>
</InstallExecuteSequence>
<Directory Id="TARGETDIR" Name="SourceDir">
  <Directory Id="ProgramFilesFolder">
    <Directory Id="INSTALLFOLDER" Name="RegisterDotNetISS" >

      <Component Id="Component1"
                 Guid="{78E22868-B750-47EB-9E4C-C19CCA939394}">
        <CreateFolder />
      </Component>
    </Directory>
  </Directory>
</Directory>

<Feature Id="ProductFeature" Title="RegisterDotNetISS" Level="1">
  <ComponentRef Id="Component1" />
    </Feature>
</Product>

</Wix>

--編集--.net3.5フレームワークでは64ビットレジストリの読み取りに問題があるように思われるため、コンソールアプリケーションではなくWIXインストーラーの作成を検討しています。これを行う簡単な機能は4.0で追加され、IISにasp.netを登録する空のインストーラーは一貫して機能しているようです。

4

1 に答える 1

1

MSIのように見えますが、動作がまったくないため、「トロイの木馬MSI」と呼ばれます。一部の人々 @Microsoftはこれを批判しましたが、それでも一部の人々(再びMicrosoft)はそれらを公開しました。(コメントを読んでください。)

それがあなたが必要とするものであるならば、彼らは静かでいいことができます。Microsoftが出している「MrFixIt's」を見てください。システムに変更を加えるが実際には何もインストールしない、MSIによって駆動される優れたウィザードUI。

それで、それをどのように行うのですか?基本的に、実行シーケンスで一連の標準アクションを抑制して、ディレクトリが作成されないようにし、機能/コンポーネント/製品などがMSIの実行内容を追跡するMSIメタベースに公開されないようにする必要があります。

これを行うには、InstallProduct、PublishFeatures、PublishComponents、InstallFiles、CreateFoldersなどの子要素とともにInstallExecuteSequence要素を作成し、Suppres属性を使用して無効にします。

于 2012-05-24T20:54:41.277 に答える