Проверяет ли ClickOnce только манифест приложения файл, чтобы определить, какие файлы DLL копировать на клиентский компьютер, или он также опрашивает внутренние компоненты сборки для определения файлов зависимостей?
Я спрашиваю, потому что я получаю указанную ниже ошибку ClickOnce при попытке запуска приложение WPF .NET 4, опубликованное с помощью ClickOnce:
Файл C: \ Users \ CNelson \ AppData \ Local \ Temp \ Deployment \ PGX6P33A.35N \ AJQL8AC8.D60 \ tx16_rtf.dll
уже существует.
Эта ошибка возникла после того, как я добавил ссылку к двум сторонним библиотекам .NET, которые обе ссылаются на неуправляемый файл dll (tx16_rtf.dll). Я хочу, чтобы tx16_rtf.dll был скопирован в папку bin на клиентском ПК, поэтому я включил его в свой проект и установил для действия сборки значение «Содержимое», а для параметра «Копировать в выходной каталог» значение «Всегда копировать».
Однако, по какой-то причине, когда я пытаюсь запустить приложение, ClickOnce пытается дважды скопировать файл 'tx16_rtf.dll', что приводит к ошибке.
Если я смотрю файл манифеста развертывания, я ясно вижу одну и только одну запись для файла tx16_rtf.dll. Итак, у меня вопрос, почему ClickOnce пытается дважды скопировать файл tx16_rtf.dll, если он существует только один раз в файле манифеста развертывания?
Ниже приведен фрагмент файла манифеста развертывания, который ссылается на tx16_rtf.dll:
<file name="tx16_rtf.dll" size="839680">
<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>V6i2QcARl3+1SJHCugoazb9zrOY=</dsig:DigestValue>
</hash>
</file>