Keisti "ClickOnce" parametrus, atsižvelgiant į pasirinktą komponavimo konfigūraciją (tik ".NET Framework" versijai)
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
- Net jei "ClickOnce" išleidimą padalijote į kelias dalis, objektas laikomas ta pačia programa, todėl, pavyzdžiui, negalite įdiegti "Debug" paskelbtos programos ir programos, paskelbtos su "Release" toje pačioje aplinkoje. Norint įdiegti, būtina imtis priemonių, tokių kaip kiekvieno mazgo pavadinimo keitimas. Peržiūrėkite šią svetainę, kad sužinotumėte, ką ji identifikuoja.