2010-02-01 52 views
9

Tôi đã tạo một ứng dụng WPF và làm xáo trộn chính .exe bằng một công cụ bên ngoài.Có thể làm hỏng ứng dụng ClickOnce được tạo trong Visual Studio 2008 không?

Bây giờ tôi đang gặp sự cố khi xuất bản dưới dạng ứng dụng ClickOnce, vì Visual Studio bằng cách nào đó sẽ biên dịch lại lần nữa là tệp thực thi chính.

tôi ngừng hoạt động xây dựng hộp kiểm dưới thời HLV Solution → Cấu hình, nhưng nó đã không làm việc: thực thi tiếp tục được xây dựng lại khi tôi xuất bản các ứng dụng để http://localhost/MyApplication

Có thể triển khai ứng dụng ClickOnce tôi mà không cần biên dịch lại dự án hiện tại?

Nếu không có cách nào, có công cụ miễn phí để tạo ứng dụng ClickOnce với các tệp mong muốn cụ thể không?

+0

Hãy xem http://stackoverflow.com/questions/3416223/how-to-use-obfuscation-for-clickonce/12036582#12036582 (có thể trùng lặp?) – Matmarbon

Trả lời

7

Disclaimer: Tôi làm việc cho giải pháp ưu tiên, các nhà sản xuất của Dotfuscator.

Vấn đề với giải pháp của Jared là nhiệm vụ xây dựng bài đăng thực hiện quá muộn trong quá trình xây dựng khi các bước xây dựng ClickOnce tạo các tệp kê khai (bao gồm chữ ký lắp ráp, thay đổi obfuscation) trước khi bài đăng cháy. Bạn có thể hack file MSBuild (file .csproj/.vbproj) của bạn để gọi nhiệm vụ obfuscation trong bước AfterCompile và có obfuscator đổ các assembly bị xáo trộn vào trong thư mục bin xây dựng nhưng đây là một cơn đau.

Cách thứ hai là sử dụng các công cụ Mage/MageUI để tạo lại các biểu hiện ClickOnce bằng cách xuất bản ứng dụng của bạn, làm xáo trộn các cụm, ghi đè lên các phiên bản đã xuất bản với các phiên bản bị xáo trộn và sau đó chạy Mage để tạo lại các biểu hiện như được hiển thị here. Tài liệu cho tiện ích Mage là here.

Phương án thay thế thứ ba là nếu obfuscator của bạn là phiên bản Dotfuscator Professional phiên bản 4.6.1010 trở lên. Dotfuscator có khả năng đọc trực tiếp một biểu hiện triển khai ClickOnce như là một đầu vào, làm xáo trộn các hội đồng và xuất ra cả các hội đồng bị xáo trộn và các tệp kê khai được cập nhật đầy đủ. Xem here để biết điểm xuất phát.

1

Tôi không hiểu chính xác lý do tại sao ClickOnce có hành vi rõ ràng này. Tuy nhiên bạn sẽ có thể làm việc xung quanh điều này bằng cách chèn bước obfuscation vào hệ thống xây dựng. Hãy thử xác định một nhiệm vụ xây dựng bài viết mà chạy obfuscator chống lại EXE/DLL. Kể từ khi điều này sẽ chạy như là một phần của xây dựng, ClickOnce sẽ nhận được obfuscated DLL xây dựng lại hay không.

Nó cũng sẽ giúp bạn tiết kiệm những rắc rối của chạy nó bằng tay :)

2

Just FYI, điều này được xử lý trong Visual Studio 2010.

Trong khi đó, bạn phải xuất bản vào một thư mục, xáo trộn các hội đồng, và ký lại việc triển khai sử dụng hoặc Mage hoặc MageUI. Điều này là do ClickOnce băm các hội đồng, và khi bạn làm xáo trộn chúng, nó thay đổi các băm, và chúng không còn phù hợp với thông tin trong tệp kê khai nữa.

RobinDotNet

0

Công ty của tôi viết một phần mềm có tên là ClickOnceMore, lý tưởng cho trường hợp này. ClickOnceMore là công cụ ClickOnce có thể được sử dụng để tự động hóa ClickOnce như là một phần của quá trình xây dựng lớn.

Sử dụng quy tắc bao gồm tệp, bạn có thể bao gồm các hội đồng bị xáo trộn của mình trong dự án ClickOnceMore và sau đó tạo các tệp kê khai ClickOnce bằng cách sử dụng Công cụ dòng lệnh ClickOnceMore.

Nhiều khách hàng của chúng tôi sử dụng ClickOnceMore để xây dựng các tệp kê khai ClickOnce với các hội đồng bị xáo trộn. Bạn có thể tìm thấy phần mềm tại www.clickoncemore.net.

Các vấn đề liên quan