0

下面是 MSDN 为 WinSxS DLL 指定发布者配置文件(策略)的格式。我对文件的名称(可能是 .dll.config)感到困惑。网上的所有信息都是关于托管程序集的,其中规定了创建策略 DLL、对其进行签名,并且可以使用 Wix 轻松安装。

我已经成功创建了一个 DLL 并将其安装到 WinSxS 文件夹,方法是创建一个将其描述为 WinSxS dll 的清单文件。我需要有关为新 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 回答