0

以下は、MSDNがWinSxS DLL用のパブリッシャー構成ファイル(ポリシー)を指定する形式です。ファイルの名前(おそらく.dll.config)について混乱しています。オンラインのすべての情報は、ポリシーDLLを作成し、署名することを示すマネージアセンブリに関するものであり、Wixを使用して簡単にインストールできます。

DLLを正常に作成し、それをWinSxS dllとして記述するマニフェストファイルを作成して、WinSxSフォルダーにインストールしました。新しいDLLバージョンのポリシーファイルを作成するための情報が必要です。これにより、古いバージョンのDLLにバインドされているアプリケーションが新しいDLLにバインドできるようになります。

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
   <assemblyIdentity type="win32-policy" 
      publicKeyToken="b09aca5b7f613458" 
      name="policy.1.0.ssc" 
      version="1.0.0.0" 
      processorArchitecture="x86"/>
   <dependency>
      <dependentAssembly>
         <assemblyIdentity 
            type="win32" 
            name="ssc"  
            processorArchitecture="x86" 
            publicKeyToken="b09aca5b7f613458"/>
         <bindingRedirect oldVersion="0.0.0.0" newVersion="1.0.0.0"/>
      </dependentAssembly>
   </dependency>
</assembly>
4

1 に答える 1

0

最初に、質問に記載されているマニフェスト形式を使用してポリシー ファイルを作成します。次に、「makecat」を使用してポリシーの検証カタログを作成します。したがって、POLICY の検証カタログ ファイルを作成 (および署名) したら、以下の wix 構成を使用できます。bindingRedirect コンポーネントには、特定の DLL にバインドするバージョンが記述されていることを忘れないでください。

<Component Id="PolicyComp" Guid="GUID-HERE" Win64="$(var.Win64)">
  <File
     Id="policy_manifest"
     Assembly="win32"
     Name="policy.<dll_name>.dll.manifest"
     KeyPath="yes"
     AssemblyManifest="policy_manifest"
     Source="$(var.release_dir)\policy.<dll_name>.dll.manifest"
     Vital="yes"
  />
  <File
     Id="policy_catalog"
     Name="policy.<dll_name>.dll.cat"
     Source="$(var.release_dir)\policy.<dll_name>.dll.cat"
     Vital="yes"
  />
</Component>
于 2012-12-27T17:19:02.427 に答える