Использует ли ClickOnce только файл манифеста приложения, чтобы определить, какие файлы dll будут копироваться на клиентскую машину или он также опросит внутренности сборки для определения файлов зависимостей?
Причина, по которой я спрашиваю, заключается в том, что Im получает нижеприведенную ошибку ClickOnce при попытке запустить приложение WPF.NET 4, опубликованное с помощью ClickOnce:
Файл C:\Users\CNelson\AppData\Local\Temp\Deployment\PGX6P33A.35N\AJQL8AC8.D60\tx16_rtf.dll
уже существует.
Эта ошибка началась после того, как Ive включил ссылку на две сторонние .NET-библиотеки DLL, которые ссылаются на неуправляемый 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>