ClickOnce chỉ xem tệp kê khai ứng dụng để xác định tệp dll nào sẽ sao chép vào máy của khách hàng hay nó cũng thẩm vấn nội bộ của một hội đồng để xác định tệp phụ thuộc?ClickOnce - File đã tồn tại lỗi - Tại sao một tập tin DLL cố gắng để được sao chép hai lần bởi ClickOnce?
Lý do tôi hỏi là vì tôi nhận được lỗi ClickOnce dưới đây khi cố gắng khởi chạy ứng dụng WPF .NET 4 đã được xuất bản với ClickOnce: Tệp C:\Users\CNelson\AppData\Local\Temp\Deployment\PGX6P33A.35N\AJQL8AC8.D60\tx16_rtf.dll
đã tồn tại.
Lỗi này bắt đầu sau khi tôi đã bao gồm tham chiếu đến hai tệp DLL bên thứ ba. Cả hai đều tham chiếu đến tệp dll không được quản lý (tx16_rtf.dll). Tôi muốn tx16_rtf.dll được sao chép vào thư mục bin trên máy tính của khách hàng vì vậy tôi đã đưa nó vào dự án của tôi và đặt Hành động Xây dựng thành ‘Nội dung’ và Thư mục Sao chép sang Đầu ra thành ‘Sao chép Luôn’.
Tuy nhiên, vì một số lý do khi tôi cố gắng khởi chạy ứng dụng, ClickOnce đang cố sao chép tệp ‘tx16_rtf.dll’ hai lần, dẫn đến lỗi.
Nếu tôi xem tệp kê khai triển khai, tôi có thể thấy rõ ràng một và chỉ một mục nhập cho tệp ‘tx16_rtf.dll’. Vì vậy, câu hỏi của tôi là, tại sao ClickOnce cố gắng sao chép tệp 'tx16_rtf.dll' hai lần nếu nó chỉ tồn tại một lần trong tệp kê khai triển khai?
Dưới đây là một đoạn của việc triển khai file manifest rằng tài liệu tham khảo ‘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>
giải pháp của bạn cho vấn đề này là gì? –
Giải pháp của tôi là không tham khảo các dll không được quản lý trong dự án của tôi. Do đó, ClickOnce sẽ không bao gồm chúng trong tệp kê khai. Thay vào đó, những gì tôi đã làm là bao gồm các tệp dll không được quản lý trong một tệp nén (thiết lập Build Action thành 'Content') và khi ứng dụng của tôi khởi động nó sẽ giải nén các tập tin không được quản lý vào thư mục thực hiện dòng lệnh ... và mọi thứ hoạt động như quyến rũ. – ChrisNel52