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)
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 projektbenCopyPublishedApplication
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
- Még ha a ClickOnce kibocsátását több részre is felosztja, az entitást a rendszer ugyanazként a programként kezeli, így például nem telepíthet egy, a Debugban közzétett programot és egy, a Release programmal közzétett programot ugyanabban a környezetben. A telepítéshez olyan intézkedéseket kell hozni, mint például az egyes szerelvények nevének megváltoztatása. Kérjük, olvassa el a következő webhelyet, hogy megtudja, mit azonosít az.