Intellilock тормозит со знаком хэш-значения dll
Я хочу использовать Intellilock 1.8 для блокировки пакета надстроек Outlook2010. Он включает в себя, среди прочего, Mocrosoft VSTO dll, мою пользовательскую подписанную dll и файл манифеста с хешем безопасности. Я предоставил файл ключа проекта *.snk при блокировке этой библиотеки DLL, но все равно получаю сообщение об ошибке при попытке установить финальный пакет:
System.Deployment.Application.InvalidDeploymentException: Файл, OutlookAddIn2010.dll, имеет вычисленный хэш, отличный от указанного в манифесте.
Исходная установка Visual Studio также автоматически создает подписанный манифест ClickOnce. Основная DLL упоминается в этом разделе:
<dependency>
<dependentAssembly dependencyType="install" allowDelayedBinding="true" codebase="OutlookAddIn2010.dll" size="275968">
<assemblyIdentity name="OutlookAddIn2010" version="2.7.0.0" publicKeyToken="DEDC24E24E6D7D88" language="neutral" processorArchitecture="msil" />
<hash>
<dsig:Transforms>
<dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
</dsig:Transforms>
<dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" />
<dsig:DigestValue>Vg17KBReMnOV9emW0ddVuN7AaIU=</dsig:DigestValue>
</hash>
</dependentAssembly>
</dependency>
1 ответ
Решение состоит в том, чтобы применить подпись IntelliLock перед основной сборкой. Решение такое же, как и в этом вопросе.
<Target Name="AfterCompile">
<Exec Command="$(IntelliLockLocation) -project $(IntelliLockProject) -file "$(ProjectDir)$(IntermediateOutputPath)$(TargetFileName)" -targetfile "$(ProjectDir)$(IntermediateOutputPath)$(TargetFileName)" -snkeypair "$(ProjectDir)$(AssemblyOriginatorKeyFile)" -snpassword *****" />
</Target>