Změna nastavení ClickOnce v závislosti na vybrané konfiguraci sestavení (pouze verze rozhraní .NET Framework)

Stránky aktualizovány :
Datum vytvoření stránky :

životní prostředí

rámec
  • Model Windows Forms (.NET Framework) obecně
  • WPF (.NET Framework) obecně

předpoklad

Obsah těchto tipů jsou předpoklady projektu pro rozhraní .NET Framework. V případě .NET (Core) můžete nastavit nastavení publikování ClickOnce v konfigurační jednotce sestavení, takže publikujte jako obvykle.

Předpokládá také, že máte dostatek znalostí pro normální použití ClickOnce.

Nejprve

Protože projekt rozhraní .NET Framework může mít pouze jedno nastavení publikování ClickOnce, Chcete-li například publikovat s různými nastaveními v sestavení ladění a sestavení verze, je nutné ručně změnit nastavení pokaždé před publikováním.

Můžete mít dvě nastavení seskupením projektů do knihovny DLL a vytvořením dvou samostatných projektů pro publikování. Budete mít stejnou konfiguraci dvakrát, a pokud existují soubory prostředků potřebné pro publikování, musíte mít dva z nich najednou, takže správa bude obtížná.

Tato část popisuje, jak vytvořit dávkový soubor (.bat) tolik nastavení, kolik potřebujete, a publikovat ClickOnce.

Konfigurace ClickOnce

Tentokrát byly "Umístění veřejné složky" a "Adresa URL instalační složky" odděleny pro "Debug Build" a "Release Build". Další nastavení jsou vytvořena se zásadou, že jsou společná. Ostatní parametry mohou být oddělené, ale může být těžkopádné udržovat "soubory aplikace" a "předpoklady" oddělené.

Nejprve otevřete projekt a zadejte nastavení ClickOnce jako obvykle. Vstupní obsah je nastaven na parametry, které má debug vydat, ale cokoli jiného než společná část je v pořádku, pokud nezpůsobí chybu.

Následuje příklad konfigurace:

Po zadání projektu uložte.

Vytvoření souboru .bat pro publikování ClickOnce

Vzhledem k tomu, že je vydán příkazem, může být spuštěn na jiných médiích, jako je PowerShell, ale tentokrát je vytvořen jako soubor BAT.

Soubor můžete vytvořit kdekoli, ale pro zjednodušení jej vytvořím v umístění souboru řešení (.sln). Vzhledem k tomu, že se jedná o soubor BAT, kódování znaků je Shift-JIS. PS1 může být UTF-8 (BOM).

Otevřete soubor BAT v textovém editoru a zadejte: Všimněte si, že PowerShell může escapování zpracovávat jinak.

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

První řádek odkazuje na umístění "Developer Command Prompt". Tato cesta závisí na verzi sady Visual Studio, kterou instalujete.

Každá část cesty závisí na následujících podmínkách:

Programové soubory
Podmínky cesty
Programové soubory
  • Pokud používáte 32bitový operační systém
  • Pokud používáte 64bitovou verzi sady Visual Studio v 64bitovém operačním systému
Programové soubory (x86)
  • Pokud používáte 32bitovou verzi sady Visual Studio v 64bitovém operačním systému
2022
Záleží na verzi sady Visual Studio, kterou instalujete.
Komunita
Záleží na edici sady Visual Studio, kterou instalujete. Budou zadány "Komunita", "Profesionální", "Podnik" atd.

Druhý řádek přesune aktuální adresář do umístění souboru BAT.

Třetí řádek je příkaz pro zpracování sestavení ClickOnce. Význam každého parametru je následující.

Popis názvu parametru
Nástroj MSBUILD Příkaz, který spustí proces sestavení. Povinné a písemné jako první.
ClickOnceBuildConfiguration.sln Popisuje název souboru řešení, které má být sestaveno.
/t:Publish Označuje proces sestavení ClickOnce.
/p:Configuration=Debug Určuje konfiguraci sestavení, kterou jste nastavili pro vaše řešení. Pokud chcete změnit konfiguraci ladění, která má být sestavena, změňte text v části "Ladění".
/p:PublishUrl="publish\Debug\\" Přepište hodnotu "Umístění veřejné složky" na obrazovce publikování sady Visual Studio zadaným řetězcem a spusťte ji.
/p:InstallUrl="\\xxxxServer\publish_Debug\\" Přepište hodnotu "Adresa URL instalační složky" na obrazovce publikování sady Visual Studio zadaným řetězcem a spusťte ji.

Některé parametry byly extrahovány, ale další parametry najdete v následujících odkazech:

Jako ukázku tentokrát změníme parametry publikování ClickOnce v každém sestavení ladění a vydání, takže jej vytvoříme následujícím způsobem.

Vydal 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 Publikováno .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 spuštění souboru BAT

Zkuste spustit každý soubor BAT.

Spustí se příkazový řádek a spustí se sestavení.

Ve skutečnosti je soubor BAT vytvořený tentokrát pouze procesem až do sestavení, takže soubor není vytvořen v "umístění veřejné složky". Byly vytvořeny soubory potřebné pro publikaci. Například v případě sestavení ladění byste měli mít soubor v "< cestě ke složce projektu >\bin\Debug\app.publish\". Zkopírujte tyto soubory na "URL instalační složky" a bude fungovat správně jako ClickOnce.

Publikování do umístění veřejné složky (pokud je cílem složka, ke které máte přímý přístup)

Následující web se používá jako reference pro tuto část.

Tato oblast přímo nesouvisí se zpracováním ClickOnce, proto se prosím podívejte na výše uvedené stránky pro podrobné vysvětlení.

Nejprve otevřete soubor projektu (.csproj) v textovém editoru. Nejedná se o soubor řešení.

Uvnitř je struktura XML, a pokud se posunete dolů, přidejte následující </Project> kód do řádku nad ním. Pokud se jedná o proces kopírování souboru, obsah je pevný, ale část je CopyPublishedApplication libovolná. Tento název použijete později.

<!-- ここから 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 jej, jakmile jej zadáte.

Poté otevřete každý soubor BAT a přidejte do /t:CopyPublishedApplication parametrů msbuild. CopyPublishedApplication je jméno, které jsem vám dal dříve.

ClickOnceDebug publikuje.bat (pří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\\"

Když spustíte soubor BAT, uvidíte, že soubor je zkopírován do umístění veřejné složky. V současné době neexistuje žádný < název programu >.exe souboru, ale je to zbytečné, protože je původně zahrnuto v instalačním programu.exe.

doplněk

Pokud je v řešení více projektů, spustí se CopyPublishedApplication pro všechny projekty. Ve většině případů je nastaven pouze na projekt exe, takže při spuštění v CopyPublishedApplication jiném projektu se zobrazí chyba, Je bezpečné ji ignorovat, protože zobrazuje pouze zprávu.

Publikování do umístění veřejné složky (pro FTP)

Nezkoušel jsem to, ale možná budete chtít odkazovat na následující stránky.

Další věci, které je třeba mít na paměti