Cho phép ClickOnce cài đặt nhiều chương trình đã xuất bản từ cùng một dự án trong cùng một môi trường (Chỉ dành cho phiên bản .NET Framework)

Trang Cập Nhật :
Ngày tạo trang :

Môi trường kiểm tra hoạt động

Studio trực quan
  • Visual Studio 2022
.NET framework
  • .NET framework 4,8

Môi trường yêu cầu

khuôn khổ
  • Windows Forms (.NET Framework) nói chung
  • WPF (.NET Framework) nói chung

Lúc đầu

Mẹo này mô tả cách cài đặt nhiều ClickOnce đã xuất bản từ cùng một dự án riêng biệt trong cùng một môi trường.

Giới thiệu về quy trình xuất bản nhiều bản sao từ cùng một dự án trong các cấu hình khác nhau

Ví dụ: ngay cả trong cùng một dự án, nếu nội dung xử lý được thay đổi tùy thuộc vào cấu hình bản dựng, bạn có thể muốn xuất bản dưới dạng một chương trình riêng biệt. Điều này có thể có trong phiên bản .NET (Core), nhưng không có trong phiên bản .NET Framework với các tính năng tiêu chuẩn của Visual Studio.

Phương pháp này được tóm tắt trong các mẹo sau bằng cách sử dụng một chương trình hàng loạt. Lời khuyên này được giải thích trên tiền đề rằng các nội dung sau đây được hoàn thành.

Các điều kiện theo đó ClickOnce cài đặt dưới dạng các ứng dụng riêng biệt

Nếu bạn xuất bản bằng chương trình hàng loạt được mô tả ở trên, cấu hình bản dựng sẽ được thay đổi, nhưng cả hai đều được coi là cùng một ứng dụng, Nếu bạn cố gắng cài đặt hai trong cùng một môi trường, sẽ có xung đột và quá trình cài đặt sẽ không thành công ngay cả khi bạn cố gắng cài đặt sau này.

Tôi cần làm cho đây có vẻ là một ứng dụng riêng biệt, nhưng theo bài viết được tham khảo, các tham số sau đây xác định ứng dụng:

Tham khảo: (.NET) Khi tôi khởi chạy ứng dụng sau khi xuất bản với ClickOnce, tôi nhận được rằng "ID vị trí không khớp với đăng ký"

  • Tên ứng dụng
  • Mã thông báo khóa công khai
  • Văn hoá
  • Kiến trúc bộ xử lý (ví dụ: x86)

Trong số này, tôi nghĩ rằng việc thay đổi "văn hóa" và "kiến trúc bộ xử lý" là điều không mong muốn vì có khả năng kết quả xử lý ngoài ý muốn.

Tôi nghĩ rằng có một cách để thay đổi "tên ứng dụng", Về cơ bản, nó không được khuyến khích vì chỉ có một tên có thể được đặt cho một dự án. Có khả năng nhiều định nghĩa có thể được thực hiện bằng cách xây dựng các tham số cấu hình và điều kiện trong nội dung của tệp dự án, Vì chỉ có một giao diện người dùng có thể được đặt trong Visual Studio, nó hơi nguy hiểm vì nó có thể bị ghi đè tùy thuộc vào hoạt động.

Phần còn lại là "mã thông báo khóa công khai", nhưng mã này cho phép bạn tạo nhiều chứng chỉ, Vì nó có thể được chỉ định là một tham số tại thời điểm xuất bản ClickOnce, tôi muốn xác định ứng dụng với thời gian này.

Quy trình kiểm tra hoạt động

Từ thời điểm tạo dự án đến mức nó đã sẵn sàng để xuất bản dưới dạng tệp bó, nó cũng giống như các mẹo sau, vì vậy vui lòng tham khảo nó để biết quy trình cho đến thời điểm đó.

Tạo chứng chỉ

Lần này, chúng tôi sẽ xác nhận với một giấy chứng nhận thử nghiệm cho mẫu. Ban đầu, nó nên được thực hiện với một chứng chỉ thông thường, nhưng vì nó sẽ yêu cầu một thủ tục khác với chủ đề chính như tạo chứng chỉ và chuẩn bị cho cơ quan cấp chứng chỉ, tôi sẽ loại trừ lời giải thích liên quan đến chứng chỉ. Trong sản xuất, bạn có thể thay thế tệp chứng chỉ kiểm tra bằng tệp sản xuất.

Sau khi bạn tạo dự án và tạo lô để phát hành, hãy quay lại Visual Studio. Mở thuộc tính dự án và chọn Ký tên từ menu bên trái. Có một kiểm tra cho "Sign the ClickOnce manifest" vì vậy hãy kiểm tra nó.

Bây giờ tạo hai chứng chỉ. Lần này chúng tôi sẽ tạo nó trên màn hình này, nhưng ". pfx" định dạng tệp, không có vấn đề gì với việc tạo chứng chỉ bằng các phương tiện khác.

Có một nút "Tạo chứng chỉ kiểm tra" ở góc dưới bên phải, vì vậy hãy nhấp vào nó.

Bạn cũng có thể đặt mật khẩu, nhưng nó hoạt động cho dù bạn có nhập mật khẩu hay không. Tuy nhiên, nếu bạn muốn đặt mật khẩu, thủ tục sẽ rắc rối, vì vậy tôi sẽ không đặt nó lần này.

Tệp chứng chỉ (.pfx) đã được tạo cho dự án của bạn. Tên tệp được tạo ở đây là cố định nhưng có thể được thay đổi sau này. Nhân tiện, hiệu lực của chứng chỉ kiểm tra được tạo ở đây là một năm. Sau một năm, bạn sẽ cần tạo lại một chứng chỉ mới.

Làm theo các bước tương tự để tạo một cái khác.

Lần này, chúng tôi sẽ xuất bản trong bản dựng Debug và bản dựng Release, vì vậy chúng tôi sẽ thay đổi tên thành tên rõ ràng.

Sửa đổi hàng loạt

Mở tệp bó bạn đã tạo (.bat) trong trình soạn thảo văn bản và thêm phần sau vào các tham số của msbuild:

yêu cầu mô tả tên tham số
ManifestKeyFile (Tệp tin ManifestKey) Tên tệp (.pfx) của chứng chỉ. Chỉ định đường dẫn liên quan đến hoặc tuyệt đối từ tệp dự án.
ManifestCertificateThumbprint Dấu vân tay của chứng chỉ kê khai. Giá trị được đưa vào có thể là bất cứ thứ gì, nhưng nó phải được đưa vào bằng mọi cách.
Tên sản phẩm Tên sản phẩm. Nó trở thành tên hiển thị của menu bắt đầu hoặc danh sách các chương trình.
Tên nhà xuất bản Tên công ty đại chúng. Nó trở thành tên thư mục khi tổ chức các chương trình trong menu bắt đầu.

Dựa trên những điều trên, hãy sửa đổi tệp bản vá như sau.

ClickOnceDebug xuất bản.bat (ví dụ)

call "C:\Program Files\Microsoft Visual Studio\2022\Community\Common7\Tools\VsDevCmd.bat"
cd %~dp0
msbuild ClickOnceBuildConfiguration.sln /t:Publish /t:CopyPublishedApplication /p:Configuration=Debug /p:PublishUrl="publish\Debug\\" /p:InstallUrl="\\xxxxServer\publish_Debug\\" /p:ManifestKeyFile="ClickOnceMultipleInstallDebug.pfx" /p:ManifestCertificateThumbprint="Debug" /p:ProductName="CliclOnce テスト Debug システム" /p:PublisherName="Sorceryforce"

ClickOnceRelease Vấn đề.bat (Ví dụ)

call "C:\Program Files\Microsoft Visual Studio\2022\Community\Common7\Tools\VsDevCmd.bat"
cd %~dp0
msbuild ClickOnceBuildConfiguration.sln /t:Publish /t:CopyPublishedApplication /p:Configuration=Release /p:PublishUrl="publish\Release\\" /p:InstallUrl="\\xxxxServer\publish_Release\\" /p:ManifestKeyFile="ClickOnceMultipleInstallRelease.pfx" /p:ManifestCertificateThumbprint="Release" /p:ProductName="CliclOnce テスト Release システム" /p:PublisherName="Sorceryforce"

ManifestKeyFile Mỗi giá trị chỉ định một tệp chứng chỉ khác nhau. ManifestCertificateThumbprint Giá trị của có thể là bất cứ thứ gì, nhưng hãy chắc chắn bao gồm nó vì ứng dụng không thể được xác định là một ứng dụng khác nếu bạn không đặt nó.

Nhân tiện, vì hai chương trình được cài đặt trong cùng một môi trường lần này, các tham số đã được thêm vào để ProductName chúng có thể được phân biệt. PublisherName theo ý thích của bạn.

phát

Sau khi nhập, thực thi từng tệp hàng loạt và xuất bản nó.

Nếu xxxx.application nằm trong tệp bạn đã xuất bản, hãy mở tệp đó trong trình soạn thảo văn bản và đảm bảo rằng tệp đó cópublicKeyToken giá trị khác.

cài đặt

Sau khi sao chép các tệp đã xuất bản vào thư mục công cộng, hãy chạy để cài đặt chúng setup.exe .

Nếu bạn nhập chứng chỉ tại thời điểm phát hành, màn hình sau sẽ được hiển thị tại thời điểm cài đặt. Nếu đó là chứng chỉ kiểm tra, nhà xuất bản không thể được xác nhận, vì vậy hãy cài đặt nó như hiện tại.

Chương trình đầu tiên đã được cài đặt và khởi chạy.

Tôi sẽ thử cài đặt cái khác.

Cái còn lại cũng đã được cài đặt và ra mắt.

Tất nhiên, cả hai đều đang làm việc cùng một lúc.

ProductName Vì nó đã được đính kèm, nó được hiển thị riêng trong menu bắt đầu.

Bạn cũng có thể xem cả hai trong danh sách ứng dụng.