clickonce манифест пропавших файлов - PullRequest
0 голосов
/ 24 августа 2018

Я использую 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>

...