Как добавить действия предварительной сборки в MSbuild для проверки процесса подписания? - PullRequest
1 голос
/ 04 января 2012

Мы используем Msbuild для создания наших проектов Wix.Из-за различных проблем несколько раз сборки, указанные в wix, просто подписывались с задержкой.Когда он был установлен в GAC, произошел сбой.

Есть ли способ проверить проверку подписи строгого имени в качестве действия предварительной сборки в wix?

Я использую sn -vf "assembly" для проверки строгого имени.

Я хочу выполнять строгую проверку имени только для dll, которые будут упакованы в wix msi (другими словами, сборки, указанные в файле wxs)

Как это сделать msbuild?

1 Ответ

2 голосов
/ 10 января 2012
  • Быстрое решение - добавить событие BeforeBuild , которое вызывает sn.exe:

Откройте файл .wixproj и добавьте:

<Target Name="BeforeBuild">
<ItemGroup>
    <AssemblyToSign Include="C:\SignedAssembly1.dll"/>
    <AssemblyToSign Include="C:\SignedAssembly2.dll"/>      
</ItemGroup>
     <Exec Command="sn -q -vf %(AssemblyToSign.Identity)" />
</Target>

Это приведет к сбою сборки, если сборка не прошла проверку.


  • Другое решение - использовать пакет расширений MSBuild Подпись класс:

Еще раз, это потерпит неудачу в вашей сборке при неудачной проверке:

<Target Name="BeforeBuild">
<ItemGroup>
        <AssemblyToSign Include="C:\SignedAssembly1.dll"/>
        <AssemblyToSign Include="C:\SignedAssembly2.dll"/>      
</ItemGroup>
 <MSBuild.ExtensionPack.Framework.Signing 
         TaskAction="Sign" 
         ToolPath="C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bin" 
         KeyFile="D:\key.snk" 
         Assemblies="@(AssemblyToSign)" />
</Target>

Чтобы использовать его, необходимо добавить ссылку на сборку пакета расширений:

<PropertyGroup>
    <ExtensionTasksPath Condition="Exists('$(MSBuildProjectDirectory)\..\..\Common')">$(MSBuildProjectDirectory)\..\..\Common</ExtensionTasksPath>
</PropertyGroup>
<UsingTask AssemblyFile="$(ExtensionTasksPath)\MSBuild.ExtensionPack.dll" TaskName="MSBuild.ExtensionPack.Framework.Signing"/>
...