Zmena nastavení ClickOnce v závislosti od vybratej konfigurácie zostavy (iba verzia rozhrania .NET Framework)

Stránka aktualizovaná :
Dátum vytvorenia strany :

životné prostredie

štruktúra
  • Formuláre systému Windows (rámec.NET) vo všeobecnosti
  • WPF (.NET Framework) vo všeobecnosti

predpoklad

Obsahom týchto tipov sú predpoklady projektu pre rámec .NET. V prípade .NET (Core) môžete nastaviť nastavenia publikovania ClickOnce v konfiguračnej jednotke zostavy, takže prosím zverejnite ako obvykle.

Predpokladá tiež, že máte dostatok vedomostí na normálne používanie ClickOnce.

Najskôr

Pretože projekt .NET Framework môže mať iba jedno publikačné nastavenie ClickOnce, Ak chcete napríklad publikovať s rôznymi nastaveniami v zostave Ladenie a zostavu Vydania, musíte pred publikovaním manuálne zmeniť nastavenia vždy pred publikovaním.

Môžete mať dve nastavenia zoskupením projektov do DLL a vytvorením dvoch samostatných projektov na publikovanie. Budete mať rovnakú konfiguráciu dvakrát, a ak existujú súbory zdrojov potrebné na publikovanie, musíte mať dva z nich naraz, takže správa bude problematická.

V tejto časti sa popisuje, ako vytvoriť dávkový súbor (.bat) toľko nastavení, koľko potrebujete, a publikovať ClickOnce.

Konfigurácia ClickOnce

Tentoraz boli "Umiestnenie verejného priečinka" a "URL adresa inštalačného priečinka" oddelené pre "Ladenie zostavy" a "Release Build". Ďalšie nastavenia sa vytvárajú s politikou, aby boli spoločné. Ostatné parametre môžu byť oddelené, ale môže byť ťažkopádne udržať "aplikačné súbory" a "predpoklady" oddelené.

Najprv otvorte projekt a zadajte nastavenia ClickOnce ako obvykle. Vstupný obsah je nastavený na parametre, ktoré má vydať Ladenie, ale čokoľvek iné ako bežná časť je v poriadku, pokiaľ to nespôsobí chybu.

Nasleduje príklad konfigurácie:

Po zadaní uložte projekt.

Vytvorenie súboru .bat pre publikovanie clickonce

Keďže je vydaný príkaz, môže byť vykonaný na iných médiách, ako je powershell, ale tentoraz je vytvorený ako súbor BAT.

Súbor môžete vytvoriť kdekoľvek, ale pre účely jednoduchosti ho vytvorím v umiestnení súboru riešenia (.sln). Keďže ide o súbor BAT, kódovanie znakov je Shift-JIS. PS1 môže byť UTF-8 (BOM).

Otvorte súbor BAT v textovom editore a zadajte: Upozorňujeme, že PowerShell môže únik zvládnuť inak.

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

Prvý riadok ukazuje na umiestnenie "Príkazového riadka vývojára". Táto cesta závisí od verzie Visual Studio, ktorú inštalujete.

Každá časť cesty závisí od nasledujúcich podmienok:

Programové súbory
Podmienky cesty
Programové súbory
  • Ak používate 32-bitový operačný systém
  • Ak používate 64-bitovú verziu Visual Studio na 64-bitovom operačnom systéme
Programové súbory (x86)
  • Ak používate 32-bitovú verziu Visual Studio v 64-bitovom operačnom systéme
2022
Závisí to od verzie Visual Studio, ktorú inštalujete.
Komunita
Závisí to od vydania Visual Studio, ktoré inštalujete. Zadá sa "komunita", "Profesionál", "Podnik" atď.

Druhý riadok presunie aktuálny adresár na umiestnenie súboru BAT.

Tretím riadkom je príkaz na spracovanie zostavy ClickOnce. Význam každého parametra je nasledovný.

popis názvu parametra
msbuild Príkaz, ktorý vykonáva proces vytvárania. Najprv potrebné a napísané.
Kliknite na položkuOnceBuildKonfigurácia.sln Popisuje názov súboru riešenia, ktoré sa má vytvoriť.
/t:Publish Označuje proces zostavenia ClickOnce.
/p:Configuration=Debug Určuje konfiguráciu zostavy, ktorú ste nastavili pre riešenie. Ak chcete zmeniť konfiguráciu ladenia, ktorá sa má vytvoriť, zmeňte text v časti "Ladenie".
/p:PublishUrl="publish\Debug\\" Prepísať hodnotu "Umiestnenie verejného priečinka" na publikačnej obrazovke Visual Studio zadaným reťazcom a vykonať ho.
/p:InstallUrl="\\xxxxServer\publish_Debug\\" Prepíšte hodnotu URL adresy inštalačného priečinka na publikačnej obrazovke Visual Studio zadaným reťazcom a spustite ju.

Niektoré parametre boli extrahované, ale ďalšie parametre nájdete v nasledujúcich odkazoch:

Ako vzorku tentokrát zmeníme publikačné parametre ClickOnce v každej zostave ladenia a vydania, takže ju vytvoríme nasledovne.

Vydavateľstvo: 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\\"

ClickOnceRelease Publikované .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 publikuje spustenie súboru BAT

Skúste spustiť každý súbor BAT.

Spustí sa príkazový riadok a spustí sa zostava.

V skutočnosti je súbor BAT vytvorený tentokrát iba procesom až do zostavenia, takže súbor nie je vytvorený v "umiestnení verejného priečinka". Boli vytvorené súbory potrebné na publikovanie. Napríklad v prípade zostavy ladenia by ste mali mať súbor v ceste "< priečinka projektu >\bin\Debug\app.publish\". Skopírujte tieto súbory do "URL inštalačného priečinka" a bude správne fungovať ako ClickOnce.

Publikovanie na umiestnenie verejného priečinka (ak je cieľom priečinok, ku ktorému máte priamy prístup)

Ako referencia pre túto časť sa používa nasledujúca stránka.

Táto oblasť priamo nesúvisí so spracovaním ClickOnce, preto sa podrobné vysvetlenie obráťte na vyššie uvedenú stránku.

Najprv otvorte súbor projektu (.csproj) v textovom editore. Nie je to súbor riešenia.

Vo vnútri je štruktúra XML a ak sa posuniete na dno, pridajte </Project> nasledujúci kód do riadka nad ním. Ak ide o premisu kopírovania súboru, obsah sa opraví, ale časť je CopyPublishedApplication ľubovoľná. Toto meno použijete neskôr.

<!-- ここから 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 の発行処理 -->

Uložte si ho, keď ho zadáte.

Potom otvorte každý súbor BAT a pridajte parametre /t:CopyPublishedApplication msbuild. CopyPublishedApplication Je to meno, ktoré som ti dal predtým.

ClickOnceDebug publikuje.bat (príklad)

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

Po spustení súboru BAT sa zobrazí, že súbor sa skopíruje do umiestnenia verejného priečinka. V súčasnosti neexistuje < názov programu >.exe súbore, ale je to zbytočné, pretože je pôvodne zahrnutý do nastavenia.exe.

doplnok

Ak je v riešení viacero projektov, beží CopyPublishedApplication pre všetky projekty. Vo väčšine prípadov je nastavený iba na projekt exe, takže pri spustení v CopyPublishedApplication inom projekte sa zobrazí chyba, Je bezpečné ho ignorovať, pretože zobrazuje iba správu.

Publikovanie na umiestnenie verejného priečinka (pre FTP)

Neskúšal som to, ale možno budete chcieť odkazovať na nasledujúce stránky.

Ďalšie veci, ktoré treba mať na pamäti