下面是MSDN为WinSxS DLL指定的发布服务器配置文件(策略)应采用的格式。我不知道这个文件应该是什么名字(也许是.dll.config)。在线的所有信息都是关于托管程序集的,它说明了如何创建策略DLL,对其进行签名,并且可以使用Wix轻松地安装它。
通过创建一个将其描述为WinSxS dll的清单文件,我已经成功地创建了一个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>发布于 2012-12-28 01:19:02
首先,使用问题中描述的清单格式创建策略文件。然后使用'makecat‘为策略创建一个验证目录。因此,一旦您已经为策略创建了验证目录文件(并对其进行了签名),您就可以使用下面的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>https://stackoverflow.com/questions/11891548
复制相似问题