A ClickOnce beállításainak módosítása a kiválasztott buildkonfigurációtól függően (csak a .NET keretrendszer verziója esetén)

Oldal frissítve :
Oldal létrehozásának dátuma :

környezet

váz
  • NET-keretrendszer (.NET-keretrendszer) általában
  • WPF (.NET Keretrendszer) általában

előtétel

Ezeknek a tippeknek a tartalma a .NET keretrendszer projektfeltevései. NET (Core) esetén a ClickOnce közzétételi beállításokat a buildkonfigurációs egységben állíthatja be, ezért tegye közzé a szokásos módon.

Azt is feltételezi, hogy elegendő ismerettel rendelkezik a ClickOnce normális használatához.

Először

Mivel egy .NET Framework projektnek csak egy ClickOnce közzétételi beállítása lehet, Ha például különböző beállításokkal szeretne közzétenni egy hibakeresési buildben és egy kiadási buildben, a közzététel előtt minden alkalommal manuálisan kell módosítania a beállításokat.

Két beállítással csoportosíthatja a projekteket egy DLL-be, és két külön projektet hozhat létre a közzétételhez. Kétszer lesz ugyanaz a konfiguráció, és ha vannak a közzétételhez szükséges erőforrásfájlok, akkor egyszerre kettővel kell rendelkeznie, így a kezelés problémás lesz.

Ez a szakasz azt ismerteti, hogyan hozhat létre kötegfájlt (.bat) annyi beállítást, amennyire szüksége van, és hogyan teheti közzé a ClickOnce-t.

A ClickOnce konfigurálása

Ezúttal a "Nyilvános mappa helye" és a "Telepítési mappa URL-címe" lett elkülönítve a "Debug Build" és a "Release Build" számára. Más beállításokat azzal a szabályzattal hoznak létre, hogy közössé tegyék őket. Más paraméterek külön is lehetnek, de nehézkes lehet az "alkalmazásfájlok" és az "előfeltételek" elkülönítése.

Először nyissa meg a projektet, és adja meg a ClickOnce beállításait a szokásos módon. A bemeneti tartalom a Debug által kibocsátandó paraméterekre van állítva, de a közös részen kívül bármi más rendben van, amíg nem okoz hibát.

Az alábbi példa a konfigurációt mutatja be:

A gépelés után mentse a projektet.

.bat fájl létrehozása a ClickOnce közzétételhez

Mivel egy paranccsal van kiadva, más adathordozókon, például a PowerShellen is végrehajtható, de ezúttal BAT-fájlként jön létre.

A fájlt bárhol létrehozhatja, de az egyszerűség kedvéért a megoldásfájl helyén hozom létre (.sln). Mivel ez egy BAT fájl, a karakterkódolás Shift-JIS. A PS1 lehet UTF-8 (BOM).

Nyissa meg a BAT-fájlt egy szövegszerkesztőben, és írja be a következőt: Vegye figyelembe, hogy a PowerShell eltérően kezelheti a menekülést.

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

Az első sor a "Fejlesztői parancssor" helyére mutat. Ez az elérési út a telepíteni kívánt Visual Studio verziójától függ.

Az elérési út minden része a következő feltételektől függ:

Programfájlok
Elérési út feltételei
Programfájlok
  • Ha 32 bites operációs rendszert használ
  • Ha a Visual Studio 64 bites verzióját használja 64 bites operációs rendszeren
Programfájlok (x86)
  • Ha a Visual Studio 32 bites verzióját használja 64 bites operációs rendszeren
2022
Ez a telepítendő Visual Studio verziójától függ.
Közösség
Ez a telepítendő Visual Studio-kiadástól függ. A "Közösség", "Szakmai", "Vállalkozás" stb. kerül bejegyzésre.

A második sor áthelyezi az aktuális könyvtárat a BAT-fájl helyére.

A harmadik sor a ClickOnce buildfeldolgozási parancs. Az egyes paraméterek jelentése a következő.

paraméternév leírása
msbuild Egy parancs, amely végrehajtja a buildfolyamatot. Kötelező és először megírt.
Kattintson a ClickOnceBuildConfiguration elemre.sln A felépítendő megoldás fájlnevét írja le.
/t:Publish A ClickOnce buildfolyamatot jelzi.
/p:Configuration=Debug Megadja a megoldáshoz beállított buildkonfigurációt. Ha módosítani szeretné a létrehozandó hibakeresési konfigurációt, módosítsa a "Hibakeresés" részben található szöveget.
/p:PublishUrl="publish\Debug\\" Írja felül a "Nyilvános mappa helye" értékét a Visual Studio közzétételi képernyőjén a megadott sztringgel, és hajtsa végre.
/p:InstallUrl="\\xxxxServer\publish_Debug\\" Írja felül a "Telepítési mappa URL-címe" értékét a Visual Studio közzétételi képernyőjén a megadott sztringgel, és hajtsa végre.

Néhány paraméter kinyerve lett, de más paraméterekért tekintse meg az alábbi hivatkozásokat:

Mintaként ezúttal módosítjuk a ClickOnce közzétételi paramétereit minden hibakeresési és kiadási buildben, így az alábbiak szerint hozzuk létre.

Kiadta: 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 Közzétett .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\\"

A ClickOnce közzéteszi a BAT-fájlok végrehajtását

Próbálja meg futtatni az egyes BAT-fájlokat.

Elindul a parancssor, és elindul a build.

Valójában az ezúttal létrehozott BAT-fájl csak egy folyamat a buildelésig, így a fájl nem jön létre a "nyilvános mappa helyén". A közzétételhez szükséges fájlok létrejöttek. Hibakeresési build esetén például rendelkeznie kell egy fájllal a "projektmappa elérési útjának < >\bin\Debug\app.publish\" fájlban. Másolja ezeket a fájlokat a "telepítési mappa URL-jére", és clickOnce-ként megfelelően fog működni.

Közzététel nyilvános mappahelyen (ha a cél olyan mappa, amelyhez közvetlen hozzáféréssel rendelkezik)

A következő webhely szolgál referenciaként ehhez a részhez.

Ez a terület nem kapcsolódik közvetlenül a ClickOnce feldolgozásához, ezért részletes magyarázatért kérjük, olvassa el a fenti webhelyet.

Először nyissa meg a projektfájlt (.csproj) egy szövegszerkesztőben. Ez nem egy megoldásfájl.

Belül egy XML-struktúra található, és ha az aljára görget, adja hozzá a </Project> következő kódot a felette lévő sorhoz. Ha ez egy fájlmásolási előfeltételi folyamat, a tartalom rögzítve van, de a része CopyPublishedApplication tetszőleges. Ezt a nevet később fogja használni.

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

Mentse el, miután beírta.

Ezután nyissa meg az egyes BAT-fájlokat, és adja hozzá az /t:CopyPublishedApplication msbuild paraméterekhez. CopyPublishedApplication ez az a név, amit korábban adtam neked.

A ClickOnceDebug közzéteszi.bat (példa)

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

A BAT-fájl futtatásakor láthatja, hogy a fájl a nyilvános mappa helyére másolódik. Jelenleg nincs < program neve >.exe fájl, de felesleges, mert eredetileg a telepítésben szerepel.exe.

kiegészítés

Ha a megoldásban több projekt is található, az összes projekthez fut CopyPublishedApplication . A legtöbb esetben csak az exe projektre van beállítva, így hiba jelenik meg, ha egy másik projektben CopyPublishedApplication fut, Nyugodtan figyelmen kívül hagyhatja, mert csak üzenetet jelenít meg.

Közzététel nyilvános mappahelyen (FTP-hez)

Még nem próbáltam, de érdemes lehet a következő webhelyekre hivatkozni.

Egyéb dolgok, amelyeket szem előtt kell tartani