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

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

περιβάλλον

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

προϋπόθεση

Τα περιεχόμενα αυτών των συμβουλών είναι υποθέσεις έργου για το .NET Framework. Στην περίπτωση του .NET (Core), μπορείτε να ορίσετε τις ρυθμίσεις δημοσίευσης ClickOnce στη μονάδα διαμόρφωσης build, οπότε δημοσιεύστε ως συνήθως.

Υποθέτει επίσης ότι έχετε αρκετές γνώσεις για να χρησιμοποιήσετε κανονικά το ClickOnce.

Αρχικά

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

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

Αυτή η ενότητα περιγράφει τον τρόπο δημιουργίας ενός αρχείου δέσμης (.bat) όσες ρυθμίσεις χρειάζεστε και να δημοσιεύσετε το ClickOnce.

Διαμόρφωση του ClickOnce

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

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

Ακολουθεί ένα παράδειγμα της ρύθμισης παραμέτρων:

Αφού πληκτρολογήσετε, αποθηκεύστε το έργο.

Δημιουργία αρχείου .bat για τη δημοσίευση ClickOnce

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

Μπορείτε να δημιουργήσετε το αρχείο οπουδήποτε, αλλά για λόγους απλότητας, θα το δημιουργήσω στη θέση του αρχείου λύσης (.sln). Δεδομένου ότι πρόκειται για αρχείο BAT, η κωδικοποίηση χαρακτήρων είναι Shift-JIS. Το PS1 μπορεί να είναι UTF-8 (BOM).

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

call "C:\Program Files\Microsoft Visual Studio\2022\Community\Common7\Tools\VsDevCmd.bat"
cd %~dp0
msbuild ClickOnceBuildConfiguration.sln /t:Publish /p:Configuration=Debug /p:PublishUrl="publish\Debug\\" /p:InstallUrl="\\xxxxServer\publish_Debug\\"

Η πρώτη γραμμή δείχνει τη θέση της "Γραμμής εντολών προγραμματιστή". Αυτή η διαδρομή εξαρτάται από την έκδοση του Visual Studio που εγκαθιστάτε.

Κάθε τμήμα της διαδρομής εξαρτάται από τις ακόλουθες συνθήκες:

Αρχεία προγράμματος
Συνθήκες διαδρομής
Αρχεία προγράμματος
  • Εάν χρησιμοποιείτε λειτουργικό σύστημα 32 bit
  • Εάν χρησιμοποιείτε μια έκδοση 64-bit του Visual Studio σε ένα λειτουργικό σύστημα 64-bit
Αρχεία προγράμματος (x86)
  • Εάν χρησιμοποιείτε μια έκδοση 32-bit του Visual Studio σε ένα λειτουργικό σύστημα 64-bit
2022
Εξαρτάται από την έκδοση του Visual Studio που εγκαθιστάτε.
Κοινότητα
Εξαρτάται από την έκδοση του Visual Studio που εγκαθιστάτε. Θα καταχωρηθούν οι λέξεις "Κοινότητα", "Επαγγελματίας", "Επιχείρηση" κ.λπ.

Η δεύτερη γραμμή μετακινεί τον τρέχοντα κατάλογο στη θέση του αρχείου BAT.

Η τρίτη γραμμή είναι η εντολή επεξεργασίας δόμησης ClickOnce. Η έννοια κάθε παραμέτρου έχει ως εξής.

Περιγραφή ονόματος παραμέτρου
msbuild Μια εντολή που εκτελεί τη διαδικασία δόμησης. Απαιτείται και γράφεται πρώτα.
Κάντε κλικ στην επιλογήOnceBuildΔιαμόρφωση.sln Περιγράφει το όνομα αρχείου της λύσης που πρόκειται να δημιουργηθεί.
/t:Publish Υποδεικνύει μια διαδικασία δημιουργίας ClickOnce.
/p:Configuration=Debug Καθορίζει τη ρύθμιση παραμέτρων δόμησης που έχετε ορίσει για τη λύση σας. Εάν θέλετε να αλλάξετε τη διαμόρφωση εντοπισμού σφαλμάτων που θα δημιουργηθεί, αλλάξτε το κείμενο στο τμήμα "Εντοπισμός σφαλμάτων".
/p:PublishUrl="publish\Debug\\" Αντικαταστήστε την τιμή της "Θέσης δημόσιου φακέλου" στην οθόνη δημοσίευσης του Visual Studio με την καθορισμένη συμβολοσειρά και εκτελέστε την.
/p:InstallUrl="\\xxxxServer\publish_Debug\\" Αντικαταστήστε την τιμή της "Διεύθυνσης URL φακέλου εγκατάστασης" στην οθόνη δημοσίευσης του Visual Studio με την καθορισμένη συμβολοσειρά και εκτελέστε την.

Ορισμένες από τις παραμέτρους έχουν εξαχθεί, αλλά ανατρέξτε στους παρακάτω συνδέσμους για άλλες παραμέτρους:

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

Δημοσιεύθηκε από το ClickOnceDebug.bat

call "C:\Program Files\Microsoft Visual Studio\2022\Community\Common7\Tools\VsDevCmd.bat"
cd %~dp0
msbuild ClickOnceBuildConfiguration.sln /t:Publish /p:Configuration=Debug /p:PublishUrl="publish\Debug\\" /p:InstallUrl="\\xxxxServer\publish_Debug\\"

Κάντε κλικ στην επιλογήOnceΕκδημοσιευμένη .bat

call "C:\Program Files\Microsoft Visual Studio\2022\Community\Common7\Tools\VsDevCmd.bat"
cd %~dp0
msbuild ClickOnceBuildConfiguration.sln /t:Publish /p:Configuration=Release /p:PublishUrl="publish\Release\\" /p:InstallUrl="\\xxxxServer\publish_Release\\"

Το ClickOnce δημοσιεύει την εκτέλεση αρχείων BAT

Δοκιμάστε να εκτελέσετε κάθε αρχείο BAT.

Η γραμμή εντολών εκκινείται και ξεκινά η κατασκευή.

Στην πραγματικότητα, το αρχείο BAT που δημιουργήθηκε αυτή τη φορά είναι μόνο μια διαδικασία μέχρι την έκδοση, οπότε το αρχείο δεν δημιουργείται στη "θέση του δημόσιου φακέλου". Τα αρχεία που είναι απαραίτητα για τη δημοσίευση έχουν δημιουργηθεί. Για παράδειγμα, στην περίπτωση μιας έκδοσης εντοπισμού σφαλμάτων, θα πρέπει να έχετε ένα αρχείο στη διαδρομή "< φακέλου έργου >\bin\Debug\app.publish\". Αντιγράψτε αυτά τα αρχεία στη "διεύθυνση URL του φακέλου εγκατάστασης" και θα λειτουργήσει σωστά ως ClickOnce.

Δημοσίευση σε θέση δημόσιου φακέλου (εάν ο προορισμός είναι ένας φάκελος στον οποίο έχετε άμεση πρόσβαση)

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

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

Αρχικά, ανοίξτε το αρχείο έργου (.csproj) σε ένα πρόγραμμα επεξεργασίας κειμένου. Δεν είναι αρχείο λύσης.

Στο εσωτερικό υπάρχει μια δομή XML και αν κάνετε κύλιση προς τα κάτω, προσθέστε τον </Project> ακόλουθο κώδικα στη γραμμή πάνω από αυτήν. Εάν πρόκειται για διαδικασία εγκατάστασης αντιγραφής αρχείου, τα περιεχόμενα διορθώνονται, αλλά το μέρος του είναι CopyPublishedApplication αυθαίρετο. Θα χρησιμοποιήσετε αυτό το όνομα αργότερα.

<!-- ここから ClickOnce の発行処理 -->
<Target Name="CopyPublishedApplication">
  <ItemGroup>
    <MySourceFiles Include="$(PublishDir)**\*.*" Exclude="$(PublishDir)$(AssemblyName).exe" />
  </ItemGroup>
  <PropertyGroup>
    <AppricationDir>$(_DeploymentApplicationDir.Substring($(PublishDir.Length)))</AppricationDir>
  </PropertyGroup>
  <Copy SourceFiles="@(MySourceFiles)" DestinationFiles="@(MySourceFiles->'$(PublishUrl)%(RecursiveDir)%(Filename)%(Extension)')" />
</Target>
<!-- ここまで ClickOnce の発行処理 -->

Αποθηκεύστε το μόλις το εισαγάγετε.

Στη συνέχεια, ανοίξτε κάθε αρχείο BAT και προσθέστε τις /t:CopyPublishedApplication παραμέτρους msbuild. CopyPublishedApplication είναι το όνομα που σας έδωσα νωρίτερα.

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\\"

Όταν εκτελείτε το αρχείο BAT, μπορείτε να δείτε ότι το αρχείο αντιγράφεται στη θέση του δημόσιου φακέλου. Προς το παρόν, δεν υπάρχει < όνομα προγράμματος >.exe αρχείο, αλλά δεν είναι απαραίτητο επειδή αρχικά περιλαμβάνεται στο .exe εγκατάστασης.

συμπλήρωμα

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

Δημοσίευση σε θέση δημόσιου φακέλου (για FTP)

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

Άλλα πράγματα που πρέπει να θυμάστε