Να επιτρέπεται στο ClickOnce να εγκαθιστά πολλά δημοσιευμένα προγράμματα από το ίδιο έργο στο ίδιο περιβάλλον (μόνο για τις εκδόσεις .NET Framework)

Σελίδα ενημέρωση :
Ημερομηνία δημιουργίας σελίδας :

Περιβάλλον ελέγχου λειτουργίας

Οπτικό στούντιο
  • Visual Studio 2022
.NET Framework
  • .NET Πλαίσιο 4.8

Απαιτούμενα περιβάλλοντα

πλαίσιο
  • Φόρμες των Windows (.NET Framework) γενικά
  • WPF (πλαίσιο .NET) γενικά

Αρχικά

Αυτές οι Συμβουλές περιγράφουν τον τρόπο εγκατάστασης πολλών δημοσιευμένων ClickOnce από το ίδιο έργο ξεχωριστά στο ίδιο περιβάλλον.

Σχετικά με τη διαδικασία δημοσίευσης πολλών αντιγράφων από το ίδιο έργο σε διαφορετικές ρυθμίσεις παραμέτρων

Για παράδειγμα, ακόμη και στο ίδιο έργο, εάν τα περιεχόμενα επεξεργασίας αλλάξουν ανάλογα με τη ρύθμιση παραμέτρων του build, ίσως θελήσετε να τα δημοσιεύσετε ως ξεχωριστό πρόγραμμα. Αυτό είναι δυνατό στην έκδοση .NET (Core), αλλά όχι στην έκδοση του .NET Framework με τις τυπικές δυνατότητες του Visual Studio.

Αυτή η μέθοδος συνοψίζεται στις παρακάτω συμβουλές χρησιμοποιώντας ένα πρόγραμμα δέσμης. Αυτή η συμβουλή εξηγείται με την προϋπόθεση ότι συμπληρώνονται τα ακόλουθα περιεχόμενα.

Συνθήκες υπό τις οποίες το ClickOnce εγκαθίσταται ως ξεχωριστές εφαρμογές

Εάν δημοσιεύσετε χρησιμοποιώντας το πρόγραμμα δέσμης που περιγράφεται παραπάνω, η διαμόρφωση του build αλλάζει, αλλά και οι δύο αντιμετωπίζονται ως η ίδια εφαρμογή, Εάν προσπαθήσετε να εγκαταστήσετε δύο στο ίδιο περιβάλλον, θα υπάρξει διένεξη και η εγκατάσταση θα αποτύχει ακόμα και αν προσπαθήσετε να εγκαταστήσετε αργότερα.

Πρέπει να κάνω αυτό να φαίνεται να είναι μια ξεχωριστή εφαρμογή, αλλά σύμφωνα με το αναφερόμενο άρθρο, οι ακόλουθες παράμετροι προσδιορίζουν την εφαρμογή:

Αναφορά: (.NET) Όταν εκκινώ την εφαρμογή μετά τη δημοσίευση με το ClickOnce, λαμβάνω ότι "το αναγνωριστικό τοποθέτησης δεν ταιριάζει με τη συνδρομή"

  • Όνομα εφαρμογής
  • Διακριτικό δημόσιου κλειδιού
  • Πολιτισμός
  • Αρχιτεκτονική επεξεργαστή (για παράδειγμα, x86)

Μεταξύ αυτών, νομίζω ότι είναι ανεπιθύμητο να αλλάξουμε την "κουλτούρα" και την "αρχιτεκτονική επεξεργαστή" επειδή υπάρχει πιθανότητα ακούσιας επεξεργασίας αποτελεσμάτων.

Νομίζω ότι υπάρχει ένας τρόπος να αλλάξετε το "όνομα της εφαρμογής", Βασικά, δεν συνιστάται επειδή μόνο ένα όνομα μπορεί να δοθεί σε ένα έργο. Υπάρχει πιθανότητα να γίνουν πολλαπλοί ορισμοί με παραμέτρους διαμόρφωσης κατασκευής και συνθηκών στα περιεχόμενα του αρχείου έργου, Δεδομένου ότι μόνο ένα περιβάλλον εργασίας χρήστη μπορεί να οριστεί στο Visual Studio, είναι λίγο επικίνδυνο επειδή μπορεί να αντικατασταθεί ανάλογα με τη λειτουργία.

Τα υπόλοιπα είναι ένα "διακριτικό δημόσιου κλειδιού", αλλά αυτό σας επιτρέπει να δημιουργήσετε πολλά πιστοποιητικά, Δεδομένου ότι μπορεί να καθοριστεί ως παράμετρος κατά τη στιγμή της δημοσίευσης του ClickOnce, θα ήθελα να προσδιορίσω την εφαρμογή με αυτή τη φορά.

Διαδικασία ελέγχου λειτουργίας

Από το σημείο της δημιουργίας του έργου μέχρι το σημείο όπου είναι έτοιμο να δημοσιευτεί ως αρχείο δέσμης, είναι το ίδιο με τις παρακάτω συμβουλές, οπότε ανατρέξτε σε αυτό για τη διαδικασία μέχρι εκείνο το σημείο.

Δημιουργία πιστοποιητικού

Αυτή τη φορά, θα επιβεβαιώσουμε με ένα πιστοποιητικό δοκιμής για το δείγμα. Αρχικά, θα πρέπει να γίνει με ένα κανονικό πιστοποιητικό, αλλά δεδομένου ότι θα απαιτήσει μια διαδικασία διαφορετική από το κύριο θέμα, όπως η δημιουργία πιστοποιητικών και η προετοιμασία της αρχής έκδοσης πιστοποιητικών, θα αποκλείσω την εξήγηση που σχετίζεται με τα πιστοποιητικά. Κατά την παραγωγή, είναι εντάξει να αντικαταστήσετε το αρχείο πιστοποιητικού δοκιμής με το αρχείο παραγωγής.

Αφού δημιουργήσετε το έργο και δημιουργήσετε τη δέσμη για δημοσίευση, επιστρέψτε στο Visual Studio. Ανοίξτε τις ιδιότητες του έργου και επιλέξτε Υπογραφή από το μενού στα αριστερά. Υπάρχει ένας έλεγχος για "Υπογράψτε το μανιφέστο ClickOnce", οπότε ελέγξτε το.

Τώρα δημιουργήστε δύο πιστοποιητικά. Αυτή τη φορά θα το δημιουργήσουμε σε αυτήν την οθόνη, αλλά ". pfx" μορφή αρχείου, δεν υπάρχει πρόβλημα με τη δημιουργία πιστοποιητικών με άλλα μέσα.

Υπάρχει ένα κουμπί "Δημιουργία πιστοποιητικού δοκιμής" στην κάτω δεξιά γωνία, οπότε κάντε κλικ σε αυτό.

Μπορείτε επίσης να βάλετε έναν κωδικό πρόσβασης, αλλά λειτουργεί είτε το βάζετε είτε όχι. Ωστόσο, αν θέλετε να βάλετε έναν κωδικό πρόσβασης, η διαδικασία θα είναι ενοχλητική, οπότε δεν θα το θέσω αυτή τη φορά.

Έχει δημιουργηθεί ένα αρχείο πιστοποιητικού (.pfx) για το έργο σας. Το όνομα αρχείου που δημιουργείται εδώ είναι σταθερό, αλλά μπορεί να αλλάξει αργότερα. Παρεμπιπτόντως, η ισχύς του πιστοποιητικού δοκιμής που δημιουργήθηκε εδώ είναι ένα έτος. Μετά από ένα έτος, θα πρέπει να αναδημιουργήσετε ένα νέο πιστοποιητικό.

Ακολουθήστε τα ίδια βήματα για να δημιουργήσετε ένα άλλο.

Αυτή τη φορά, θα δημοσιεύσουμε στην έκδοση Debug και στην έκδοση Release, οπότε θα αλλάξουμε το όνομα σε ένα σαφές.

Τροποποίηση παρτίδας

Ανοίξτε το αρχείο δέσμης που δημιουργήσατε (.bat) σε ένα πρόγραμμα επεξεργασίας κειμένου και προσθέστε τα ακόλουθα στις παραμέτρους του msbuild:

Απαιτείται περιγραφή ονόματος παραμέτρου
ManifestKeyFileFile Το όνομα αρχείου (.pfx) του πιστοποιητικού. Καθορίστε μια διαδρομή σχετική ή απόλυτη από το αρχείο έργου.
ManifestCertificateThumbprint Το αποτύπωμα του δηλωτικού πιστοποιητικού. Η αξία που πρέπει να δοθεί μπορεί να είναι οτιδήποτε, αλλά πρέπει να τεθεί με κάθε τρόπο.
Όνομα_προϊόντος Όνομα προϊόντος. Γίνεται το εμφανιζόμενο όνομα του μενού έναρξης ή της λίστας προγραμμάτων.
Όνομα εκδότη Επωνυμία δημόσιας εταιρείας. Γίνεται το όνομα του φακέλου κατά την οργάνωση προγραμμάτων στο μενού "Έναρξη".

Με βάση τα παραπάνω, τροποποιήστε το αρχείο patch ως εξής.

ClickOnceDebug δημοσιεύει.bat (παράδειγμα)

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"

Κάντε κλικ στην επιλογήΠροέκδοση ζητήματος.bat (Παράδειγμα)

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 Κάθε τιμή καθορίζει ένα διαφορετικό αρχείο πιστοποιητικού. ManifestCertificateThumbprint Η αξία του μπορεί να είναι οτιδήποτε, αλλά φροντίστε να το συμπεριλάβετε επειδή η εφαρμογή δεν μπορεί να αναγνωριστεί ως άλλη εάν δεν το βάλετε.

Παρεμπιπτόντως, δεδομένου ότι δύο προγράμματα εγκαθίστανται στο ίδιο περιβάλλον αυτή τη φορά, έχουν προστεθεί παράμετροι ώστε ProductName να μπορούν να διακριθούν. PublisherName σύμφωνα με τις προτιμήσεις σας.

ζήτημα

Μετά την εισαγωγή, εκτελέστε κάθε αρχείο δέσμης και δημοσιεύστε το.

Εάν το xxxx.application βρίσκεται στο αρχείο που δημοσιεύσατε, ανοίξτε το σε ένα πρόγραμμα επεξεργασίας κειμένου και βεβαιωθείτε ότι έχειpublicKeyToken διαφορετική τιμή.

εγκαθιστώ

Αφού αντιγράψετε τα δημοσιευμένα αρχεία στο δημόσιο φάκελο, εκτελέστε για να τα setup.exe εγκαταστήσετε .

Εάν εισαγάγετε το πιστοποιητικό κατά τη στιγμή της έκδοσης, θα εμφανιστεί η ακόλουθη οθόνη κατά τη στιγμή της εγκατάστασης. Εάν πρόκειται για δοκιμαστικό πιστοποιητικό, ο εκδότης δεν μπορεί να επιβεβαιωθεί, οπότε εγκαταστήστε το ως έχει.

Το πρώτο πρόγραμμα εγκαταστάθηκε και ξεκίνησε.

Θα προσπαθήσω να εγκαταστήσω το άλλο.

Το άλλο εγκαταστάθηκε επίσης και ξεκίνησε.

Φυσικά, και οι δύο εργάζονται ταυτόχρονα.

ProductName Δεδομένου ότι επισυνάφθηκε, εμφανίζεται ξεχωριστά στο μενού έναρξης.

Μπορείτε επίσης να δείτε και τα δύο στη λίστα των εφαρμογών.