Я использую clickonce для установки старого устаревшего приложения winforms. Изначально приложение было подписано самозаверяющим сертификатом, срок действия которого недавно истек, а новый самозаверяющий сертификат был создан с помощью визуальной студии «create test cerificate» -tool. Проблема в том, что после создания нового сертификата, application.exe.manifest имел неправильные пути для некоторых зависимостей ресурсов-dll. Приложение устанавливается и работает нормально, но из-за того, что некоторые dll: s не копируются в правильные пути, локализация для приложения нарушена.
Например, ниже вы можете увидеть зависимость MyApplication.PersistentObjects.resources.dll. Когда приложение установлено, оно должно быть скопировано в папку «fi-FI» в каталоге установки приложения, но это не так. Если я копирую файл вручную, приложение работает правильно.
Странная вещь в том, что при использовании некоторых рабочих станций для построения манифеста он создается правильно. Проблема также сохраняется, даже если я пытаюсь сгенерировать манифест для более старой версии приложения, которое работало ранее. В связи с этим, я думаю, что проблема может быть связана со средой сборки, а не с новым сертификатом. Я создаю манифест с функциональностью публикации Visual Studio 2017.
Зависимость от старой версии. Это работает
<dependency>
<dependentAssembly dependencyType="install" allowDelayedBinding="true" codebase="fi-FI\MyApplication.PersistentObjects.resources.dll" size="7680">
<assemblyIdentity name="MyApplication.PersistentObjects.resources" version="1.0.0.0" language="fi-FI" 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#sha256" />
<dsig:DigestValue>u9nDJ6g9YVoJqrH9B4u+8uVVPRCWgMeNNsfFsiJKFdU=</dsig:DigestValue>
</hash>
</dependentAssembly>
Зависимость от новой версии. Это не работает
<dependency>
<dependentAssembly dependencyType="install" allowDelayedBinding="true" codebase="MyApplication.PersistentObjects.resources.dll" size="7680">
<assemblyIdentity name="MyApplication.PersistentObjects.resources" version="1.0.0.0" language="fi-FI" 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#sha256" />
<dsig:DigestValue>xYh9ijZkRARKgrSp5DUays/YHXwGAEpIhuh8jahwdEA=</dsig:DigestValue>
</hash>
</dependentAssembly>