1

次のようなアプリケーションのマニフェスト ファイルがあります。

<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
  <assemblyIdentity name="xxx.exe" version="1.1.0.0" type="win32" processorArchitecture="x86" />
  <file name="xxxxxxxx.ocx" hashalg="SHA1">
    <comClass clsid="{4xxxxxxx76-D693-4156-93BA-B938A56F15D3}" description="" threadingModel="apartment" />
    <typelib tlbid="{8xxxxxx-3A75-4708-993D-6E0CD9564072}" version="1.0" helpdir="" flags="control,hasdiskimage" />
  </file>
  <dependency>
    <dependentAssembly>
      <assemblyIdentity name="Assembly numero uno" version="1.1.0.0" type="win32" publicKeyToken="7XXXXXXXXXXXD" />
    </dependentAssembly>
  </dependency>
</assembly>

タグ<dependency>の直後に新しいセクションを追加したい。</dependency>新しいものは次の<dependency>ようになります。

<dependency>
  <dependentAssembly>
    <assemblyIdentity name="Assembly number two" version="1.1.0.0" type="win32" publicKeyToken="7XXXXXXXXXXXD" />
  </dependentAssembly>
</dependency>

Wix でこれを実現するにはどうすればよいですか?

4

2 に答える 2

2

まず、ビルド時にマニフェストを変更することを検討してください。それが可能であれば、はるかに望ましいです - 常にインストール時の複雑さよりもビルド時の複雑さを選択してください。

<dependency>要素の内容がユーザー入力またはターゲット システムの状態に依存する場合にのみ、インストール時にこれをそのままにしておくことが理にかなっている場合があります。この場合、WiX オプションの 1 つを使用して XML を変更する必要があります。後者の方が柔軟性が高いように見えるため、後者をより頻繁に使用しました。

インストール時にマニフェストを変更することにした場合でも、作業を少し楽にすることができます。ビルド時に XML パターンをマニフェストに追加し、インストール時にユーザー入力またはシステム状態に依存する部分のみを変更します。assemblyIdentity/version属性としましょう。次に、WiX スニペットは次のようになります。

<util:XmlConfig Id="VersionChange" ElementPath="assembly/dependency/dependentAssembly/assemblyIdentity[\[]@name='Assembly number two'[\]]" File="$(var.Manifest)" Name="version" Action="create" Node="value" On="install" PreserveModifiedDate="yes" Value="1.1.0.0" />

角かっこのエスケープ方法に注意してください。

于 2012-08-31T05:32:44.447 に答える
1

XmlFile 要素で WisUtilExtention ライブラリを使用して、XML ファイルでいくつかの操作を実行できます。詳細については、このリンクをご覧ください

于 2012-08-30T11:37:16.613 に答える