Keisti "ClickOnce" parametrus, atsižvelgiant į pasirinktą komponavimo konfigūraciją (tik ".NET Framework" versijai)

Puslapis atnaujintas :
Puslapio sukūrimo data :

Aplinkos

Sistema
  • "Windows" formos (.NET Framework) apskritai
  • WPF (.NET Framework) apskritai

Prielaida

Šių patarimų turinys yra ".NET Framework" projekto prielaidos. .NET (Core) atveju galite nustatyti ClickOnce publikavimo nustatymus kūrimo konfigūracijos bloke, todėl paskelbkite kaip įprasta.

Taip pat daroma prielaida, kad turite pakankamai žinių, kad galėtumėte įprastai naudoti "ClickOnce".

Iš pradžių

Kadangi ".NET Framework" projektas gali turėti tik vieną "ClickOnce" publikavimo parametrą, Pavyzdžiui, norėdami publikuoti su skirtingais derinimo komponavimo versijos ir leidimo komponavimo versijos parametrais, kiekvieną kartą prieš publikuodami turite rankiniu būdu keisti parametrus.

Galite turėti du nustatymus sugrupuodami projektus į DLL ir sukurdami du atskirus publikavimo projektus. Jūs turėsite tą pačią konfigūraciją du kartus, o jei yra išteklių failų, reikalingų publikavimui, vienu metu turite turėti du iš jų, todėl valdymas bus varginantis.

Šiame skyriuje aprašoma, kaip sukurti paketinį failą (.bat) tiek parametrų, kiek jums reikia, ir publikuoti ClickOnce.

ClickOnce konfigūravimas

Šį kartą "Viešojo aplanko vieta" ir "Diegimo aplanko URL" buvo atskirti "Debug Build" ir "Release Build". Kiti nustatymai sukuriami taikant politiką, kaip juos padaryti įprastus. Kiti parametrai gali būti atskiri, tačiau gali būti sudėtinga atskirti "programų failus" ir "būtinas sąlygas".

Pirmiausia atidarykite projektą ir įveskite "ClickOnce" nustatymus kaip įprasta. Įvesties turinys yra nustatytas pagal parametrus, kuriuos turi išduoti Debug, tačiau viskas, išskyrus bendrą dalį, yra gerai, jei ji nesukelia klaidos.

Toliau pateikiamas konfigūracijos pavyzdys:

Įvedę įrašykite projektą.

"ClickOnce" publikavimo .bat failo kūrimas

Kadangi jis išduotas su komanda, jis gali būti vykdomas kitose medijose, tokiose kaip "PowerShell", tačiau šį kartą jis sukuriamas kaip BAT failas.

Failą galite sukurti bet kur, tačiau paprastumo sumetimais aš jį sukursiu sprendimo failo vietoje (.sln). Kadangi tai yra BAT failas, simbolių kodavimas yra Shift-JIS. PS1 gali būti UTF-8 (KS).

Atidarykite BAT failą teksto rengyklėje ir įveskite: Atminkite, kad "PowerShell" gali kitaip tvarkyti pabėgimą.

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

Pirmoji eilutė nurodo į "Developer Command Prompt" vietą. Šis kelias priklauso nuo diegiamos "Visual Studio" versijos.

Kiekviena kelio dalis priklauso nuo šių sąlygų:

Programos failai
Kelio sąlygos
Programos failai
  • Jei naudojate 32 bitų OS
  • Jei naudojate 64 bitų "Visual Studio" versiją 64 bitų OS
Programų failai (x86)
  • Jei naudojate 32 bitų "Visual Studio" versiją 64 bitų OS
2022
Tai priklauso nuo diegiamos "Visual Studio" versijos.
Bendrija
Tai priklauso nuo jūsų diegiamo "Visual Studio" leidimo. Bus įvesta "Bendruomenė", "Profesinė", "Įmonė" ir kt.

Antroji eilutė perkelia dabartinį katalogą į BAT failo vietą.

Trečioji eilutė yra "ClickOnce" kūrimo apdorojimo komanda. Kiekvieno parametro reikšmė yra tokia.

parametro pavadinimo aprašymas
msbuild Komanda, vykdanti kūrimo procesą. Pirmiausia reikia ir parašyta.
SpustelėkiteOnceBuildConfiguration.sln Aprašomas kuriamo sprendimo failo vardas.
/t:Publish Nurodo "ClickOnce" kūrimo procesą.
/p:Configuration=Debug Nurodo kūrimo konfigūraciją, kurią nustatėte savo sprendimui. Jei norite pakeisti derinimo konfigūraciją, kad ji būtų sukurta, pakeiskite tekstą dalyje "Derintuvas".
/p:PublishUrl="publish\Debug\\" Perrašykite "Viešojo aplanko vietos" reikšmę "Visual Studio" publikavimo ekrane nurodyta eilute ir vykdykite ją.
/p:InstallUrl="\\xxxxServer\publish_Debug\\" Perrašykite "Diegimo aplanko URL" reikšmę "Visual Studio" publikavimo ekrane nurodyta eilute ir vykdykite ją.

Kai kurie parametrai buvo išgauti, tačiau žiūrėkite šias nuorodas apie kitus parametrus:

Šį kartą kaip pavyzdį pakeisime "ClickOnce" publikavimo parametrus kiekvienoje derinimo ir leidimo versijoje, todėl sukursime ją taip.

Išleido 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 Paskelbta .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" publikuoja BAT failo vykdymą

Pabandykite paleisti kiekvieną BAT failą.

Paleidžiama komandų eilutė ir prasideda kūrimas.

Tiesą sakant, šį kartą sukurtas BAT failas yra tik procesas iki sukūrimo, todėl failas nėra sukurtas "viešojo aplanko vietoje". Sukurtos publikavimui reikalingos bylos. Pavyzdžiui, derinimo versijos atveju failą turėtumėte turėti "< projekto aplanko kelias >\bin\Debug\app.publish\". Nukopijuokite šiuos failus į "diegimo aplanko URL" ir jis tinkamai veiks kaip "ClickOnce".

Publikavimas viešojo aplanko vietoje (jei paskirties vieta yra aplankas, prie kurio turite tiesioginę prieigą)

Ši svetainė naudojama kaip nuoroda į šią dalį.

Ši sritis nėra tiesiogiai susijusi su ClickOnce apdorojimu, todėl išsamų paaiškinimą rasite aukščiau esančioje svetainėje.

Pirmiausia atidarykite projekto failą (.csproj) teksto rengyklėje. Tai nėra sprendimo failas.

Viduje yra XML struktūra, o jei slenkate į apačią, prie eilutės virš jos pridėkite </Project> šį kodą. Jei tai yra failo kopijavimo prielaidos procesas, turinys yra fiksuotas, tačiau dalis yra CopyPublishedApplication savavališka. Šį pavadinimą naudosite vėliau.

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

Išsaugokite jį, kai jį įvesite.

Tada atidarykite kiekvieną BAT failą ir pridėkite /t:CopyPublishedApplication prie msbuild parametrų. CopyPublishedApplication yra vardas, kurį jums daviau anksčiau.

ClickOnceDebug publikuoja.bat (pavyzdys)

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

Kai paleidžiate BAT failą, matote, kad failas nukopijuotas į viešojo aplanko vietą. Šiuo metu nėra < programos pavadinimo >.exe failą, tačiau jis nereikalingas, nes jis iš pradžių buvo įtrauktas į sąranką.exe.

Papildas

Jei sprendime yra keli projektai, vykdomi CopyPublishedApplication visiems projektams. Daugeliu atvejų jis nustatomas tik į exe projektą, todėl vykdant kitą CopyPublishedApplication projektą bus rodoma klaida, Jo saugu nepaisyti, nes jis rodo tik pranešimą.

Publikavimas viešojo aplanko vietoje (FTP)

Aš to nebandžiau, bet galbūt norėsite kreiptis į šias svetaines.

Kiti dalykai, kuriuos reikia atsiminti