ClickOnce-asetusten muuttaminen valitun koontiversion määrityksen mukaan (vain .NET Framework -versio)

Sivu päivitetty :
Sivun luontipäivämäärä :

ympäristö

puitteet
  • Windows-lomakkeet (.NET Framework) yleensä
  • WPF (.NET Framework) yleensä

premissi

Näiden vinkkien sisältö on .NET Frameworkin projektioletuksia. .NET :n (Core) tapauksessa voit määrittää ClickOncen julkaisuasetukset koontiversion määritysyksikössä, joten julkaise tavalliseen tapaan.

Se olettaa myös, että sinulla on tarpeeksi tietoa ClickOncen käyttämiseen normaalisti.

Alun perin

Koska .NET Framework -projektissa voi olla vain yksi ClickOnce-julkaisuasetus, Jos esimerkiksi haluat julkaista eri asetuksilla Virheenkorjaus-koontiversiossa ja julkaisuversiossa, sinun on muutettava asetuksia manuaalisesti joka kerta ennen julkaisua.

Sinulla voi olla kaksi asetusta ryhmittelemällä projektit DLL-tiedostoon ja luomalla kaksi erillistä projektia julkaistavaksi. Sinulla on sama kokoonpano kahdesti, ja jos julkaisemiseen tarvitaan resurssitiedostoja, sinulla on oltava kaksi niistä kerrallaan, joten hallinta on hankalaa.

Tässä osassa kuvataan, miten voit luoda erätiedoston (.bat) niin monta asetusta kuin tarvitset ja julkaista ClickOnce.

ClickOncen määrittäminen

Tällä kertaa "Public Folder Location" ja "Installation Folder URL" erotettiin toisistaan "Debug Build" ja "Release Build". Muut asetukset luodaan politiikalla, jolla niistä tehdään yleisiä. Muut parametrit voivat olla erillisiä, mutta voi olla hankalaa pitää "sovellustiedostot" ja "edellytykset" erillään.

Avaa ensin projekti ja kirjoita ClickOnce-asetukset tavalliseen tapaan. Syötesisällön parametrit on asetettu Debugin antamiksi parametreiksi, mutta kaikki muu kuin yhteinen osa on kunnossa, kunhan se ei aiheuta virhettä.

Seuraavassa on esimerkki kokoonpanosta:

Kun olet kirjoittanut, tallenna projekti.

.bat tiedoston luominen ClickOnce-julkaisua varten

Koska sille annetaan komento, se voidaan suorittaa muilla medioilla, kuten PowerShellillä, mutta tällä kertaa se luodaan BAT-tiedostona.

Voit luoda tiedoston missä tahansa, mutta yksinkertaisuuden vuoksi luon sen ratkaisutiedoston sijaintiin (.sln). Koska kyseessä on BAT-tiedosto, merkkikoodaus on Shift-JIS. PS1 voi olla UTF-8 (BOM).

Avaa BAT-tiedosto tekstieditorissa ja kirjoita: Huomaa, että PowerShell saattaa käsitellä pakenemista eri tavalla.

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

Ensimmäinen rivi osoittaa "Developer Command Prompt" -sijaintiin. Tämä polku riippuu asennettavasta Visual Studion versiosta.

Polun jokainen osa riippuu seuraavista ehdoista:

Ohjelman tiedostot
Polun olosuhteet
Ohjelman tiedostot
  • Jos käytät 32-bittistä käyttöjärjestelmää
  • Jos käytät Visual Studion 64-bittistä versiota 64-bittisessä käyttöjärjestelmässä
Ohjelmatiedostot (x86)
  • Jos käytät Visual Studion 32-bittistä versiota 64-bittisessä käyttöjärjestelmässä
2022
Se riippuu asennettavan Visual Studion versiosta.
Yhteisö
Se riippuu asennettavan Visual Studion versiosta. "Yhteisö", "Ammattilainen", "Yritys" jne.

Toinen rivi siirtää nykyisen hakemiston BAT-tiedoston sijaintiin.

Kolmas rivi on ClickOnce-rakenteen käsittelykomento. Kunkin parametrin merkitys on seuraava.

parametrin nimen kuvaus
msbuild Komento, joka suorittaa koontiprosessin. Vaaditaan ja kirjoitetaan ensin.
ClickOnceBuildConfiguration.sln Tässä artikkelissa kuvataan rakennettavan ratkaisun tiedostonimi.
/t:Publish Ilmaisee ClickOnce-koontiprosessin.
/p:Configuration=Debug Määrittää koontiversion määrityksen, jonka olet määrittänyt ratkaisullesi. Jos haluat muuttaa rakennettavaa virheenkorjausmääritystä, muuta "Debug"-osan tekstiä.
/p:PublishUrl="publish\Debug\\" Korvaa Visual Studion julkaisunäytön "Julkisen kansion sijainti" -arvo määritetyllä merkkijonolla ja suorita se.
/p:InstallUrl="\\xxxxServer\publish_Debug\\" Korvaa Visual Studion julkaisunäytön "Asennuskansion URL"-arvon arvo määritetyllä merkkijonolla ja suorita se.

Osa parametreista on poimittu, mutta katso seuraavat linkit muista parametreista:

Esimerkkinä tällä kertaa muutamme ClickOncen julkaisuparametreja jokaisessa virheenkorjaus- ja julkaisuversiossa, joten luomme sen seuraavasti.

Julkaisija 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 Julkaistu .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 julkaisee BAT-tiedoston suorittamisen

Yritä suorittaa jokainen BAT-tiedosto.

Komentokehote käynnistetään ja koontiversio käynnistyy.

Itse asiassa tällä kertaa luotu BAT-tiedosto on vain prosessi rakentamiseen asti, joten tiedostoa ei luoda "julkisen kansion sijaintiin". Julkaisemiseen tarvittavat tiedostot on luotu. Jos kyseessä on esimerkiksi virheenkorjausversio, sinulla pitäisi olla tiedosto "< projektikansion polulla >\bin\Debug\app.publish\". Kopioi nämä tiedostot "asennuskansion URL-osoitteeseen" ja se toimii oikein ClickOnce-muodossa.

Julkaise yleisen kansion sijaintiin (jos kohde on kansio, johon sinulla on suora pääsy)

Seuraavaa sivustoa käytetään viitteenä tässä osassa.

Tämä alue ei liity suoraan ClickOncen käsittelyyn, joten katso yksityiskohtainen selitys yllä olevalta sivustolta.

Avaa ensin projektitiedosto (.csproj) tekstieditorissa. Se ei ole ratkaisutiedosto.

Sisällä on XML-rakenne, ja jos vierität alareunaan, lisää </Project> seuraava koodi sen yläpuolella olevalle riville. Jos kyseessä on tiedoston kopiointiin liittyvä lähtökohta, sisältö on korjattu, mutta sen osa on CopyPublishedApplication mielivaltainen. Käytät tätä nimeä myöhemmin.

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

Tallenna se, kun olet syöttänyt sen.

Avaa sitten jokainen BAT-tiedosto ja lisää msbuild-parametreihin /t:CopyPublishedApplication . CopyPublishedApplication on nimi, jonka annoin sinulle aiemmin.

ClickOnceDebug julkaisee.bat (esimerkki)

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

Kun suoritat BAT-tiedoston, näet, että tiedosto kopioidaan julkisen kansion sijaintiin. Tällä hetkellä ei ole < ohjelman nimeä >.exe tiedostossa, mutta se on tarpeetonta, koska se sisältyy alun perin asetuksiin.exe.

täydennys

Jos ratkaisussa on useita projekteja, se suoritetaan CopyPublishedApplication kaikissa projekteissa. Useimmissa tapauksissa se on asetettu vain exe-projektiin, joten virhe näkyy, kun se suoritetaan toisessa projektissa CopyPublishedApplication , Se on turvallista jättää huomiotta, koska se näyttää vain viestin.

Julkaiseminen julkisen kansion sijaintiin (FTP: lle)

En ole kokeillut sitä, mutta saatat haluta viitata seuraaviin sivustoihin.

Muita asioita, jotka on pidettävä mielessä