ClickOnce iestatījumu maiņa atkarībā no atlasītās būvējuma konfigurācijas (tikai .NET Framework versija)

Lapa atjaunota :
Lapas izveides datums :

vide

Sistēmu
  • Windows veidlapas (.NET Framework) kopumā
  • WPF (.NET Framework) kopumā

Premisu

Šo padomu saturs ir .NET Framework projektu pieņēmumi. .NET (Core) gadījumā varat iestatīt ClickOnce publicēšanas iestatījumus būvējuma konfigurācijas vienībā, tāpēc, lūdzu, publicējiet kā parasti.

Tas arī pieņem, ka jums ir pietiekami daudz zināšanu, lai normāli izmantotu ClickOnce.

Sākumā

Tā kā .NET Framework projektam var būt tikai viens ClickOnce publicēšanas iestatījums, Piemēram, lai publicētu ar dažādiem iestatījumiem Atkļūdošanas būvējumā un laidiena būvējumā, iestatījumi ir manuāli jāmaina katru reizi pirms publicēšanas.

Jums var būt divi iestatījumi, grupējot projektus DLL un izveidojot divus atsevišķus projektus publicēšanai. Jums būs viena un tā pati konfigurācija divreiz, un, ja publicēšanai ir nepieciešami resursu faili, jums ir jābūt diviem no tiem vienlaikus, tāpēc pārvaldība būs apgrūtinoša.

Šajā sadaļā ir aprakstīts, kā izveidot pakešfailu (.bat) tik daudz iestatījumu, cik nepieciešams, un publicēt ClickOnce.

ClickOnce konfigurēšana

Šoreiz "Publisko mapju atrašanās vieta" un "Instalācijas mapes URL" tika atdalīti sadaļās "Atkļūdošanas būve" un "Release Build". Citi iestatījumi tiek izveidoti ar politiku, kas tos padara kopīgus. Citi parametri var būt atsevišķi, taču var būt apgrūtinoši turēt atsevišķi "lietojumprogrammu failus" un "priekšnoteikumus".

Vispirms atveriet projektu un ievadiet savus ClickOnce iestatījumus kā parasti. Ievades saturam ir iestatīti parametri, kas jāizdod Debug, bet viss, kas nav parastā daļa, ir labi, ja vien tas nerada kļūdu.

Šis ir konfigurācijas piemērs:

Kad esat ierakstījis, saglabājiet projektu.

.bat faila izveide ClickOnce publicēšanai

Tā kā tas ir izdots ar komandu, to var izpildīt citos datu nesējos, piemēram, PowerShell, bet šoreiz tas ir izveidots kā BAT fails.

Failu var izveidot jebkurā vietā, taču vienkāršības labad es to izveidošu risinājuma faila (.sln) atrašanās vietā. Tā kā tas ir BAT fails, rakstzīmju kodējums ir Shift-JIS. PS1 var būt UTF-8 (MK).

Atveriet BAT failu teksta redaktorā un ierakstiet: Ņemiet vērā, ka PowerShell var rīkoties ar izbēgšanu atšķirīgi.

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

Pirmā rinda norāda uz "Izstrādātāja komandu uzvednes" atrašanās vietu. Šis ceļš ir atkarīgs no instalētās Visual Studio versijas.

Katra ceļa daļa ir atkarīga no šādiem nosacījumiem:

Programmu faili
Ceļa apstākļi
Programmu faili
  • Ja izmantojat 32 bitu OS
  • Ja izmantojat Visual Studio 64 bitu versiju 64 bitu operētājsistēmā
Programmu faili (x86)
  • Ja izmantojat Visual Studio 32 bitu versiju 64 bitu operētājsistēmā
2022
Tas ir atkarīgs no instalētās Visual Studio versijas.
Kopiena
Tas ir atkarīgs no instalētā Visual Studio izdevuma. Tiks ievadīti "Kopiena", "Profesionālis", "Uzņēmums" utt.

Otrā rinda pārvieto pašreizējo direktoriju uz BAT faila atrašanās vietu.

Trešā rinda ir ClickOnce būvējuma apstrādes komanda. Katra parametra nozīme ir šāda.

parametra nosaukuma apraksts
msbuild Komanda, kas izpilda veidošanas procesu. Nepieciešams un rakstīts vispirms.
ClickOnceBuildConfiguration.sln Apraksta būvējamā risinājuma faila nosaukumu.
/t:Publish Norāda ClickOnce būvējuma procesu.
/p:Configuration=Debug Norāda būvējuma konfigurāciju, ko esat iestatījis savam risinājumam. Ja vēlaties mainīt būvējamo atkļūdošanas konfigurāciju, mainiet tekstu daļā "Atkļūdošana".
/p:PublishUrl="publish\Debug\\" Pārrakstiet vērtību "Publisko mapju atrašanās vieta" Visual Studio publicēšanas ekrānā ar norādīto virkni un izpildiet to.
/p:InstallUrl="\\xxxxServer\publish_Debug\\" Pārrakstiet "Instalācijas mapes URL" vērtību Visual Studio publicēšanas ekrānā ar norādīto virkni un izpildiet to.

Daži no parametriem ir izgūti, bet citus parametrus skatiet šajās saitēs:

Kā paraugu šoreiz mēs mainīsim ClickOnce publicēšanas parametrus katrā atkļūdošanas un laidiena būvējumā, tāpēc mēs to izveidosim šādi.

Izdevējs 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 Publicēts .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 publicē BAT failu izpildi

Mēģiniet palaist katru BAT failu.

Komandu uzvedne tiek palaista un sākas būvējums.

Faktiski šoreiz izveidotais BAT fails ir tikai process līdz izveidei, tāpēc fails netiek izveidots "publiskās mapes atrašanās vietā". Ir izveidoti publicēšanai nepieciešamie faili. Piemēram, atkļūdošanas būvējuma gadījumā failam jābūt "< projekta mapes ceļa >\bin\Debug\app.publish\". Kopējiet šos failus uz "instalācijas mapes URL", un tas darbosies pareizi kā ClickOnce.

Publicēšana publiskās mapes atrašanās vietā (ja mērķis ir mape, kurai jums ir tieša piekļuve)

Šī vietne tiek izmantota kā atsauce uz šo daļu.

Šis apgabals nav tieši saistīts ar ClickOnce apstrādi, tāpēc, lūdzu, skatiet iepriekš minēto vietni, lai iegūtu detalizētu skaidrojumu.

Vispirms atveriet projekta failu (.csproj) teksta redaktorā. Tas nav risinājuma fails.

Iekšpusē ir XML struktūra, un, ritinot līdz apakšai, </Project> pievienojiet tālāk norādīto kodu rindai virs tās. Ja tas ir faila kopēšanas priekšnoteikums, saturs tiek fiksēts, bet daļa ir CopyPublishedApplication patvaļīga. Šo nosaukumu izmantosit vēlāk.

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

Saglabājiet to, kad esat tajā ievadījis.

Pēc tam atveriet katru BAT failu un pievienojiet /t:CopyPublishedApplication msbuild parametriem. CopyPublishedApplication ir vārds, ko es jums devu agrāk.

ClickOnceDebug publicē.bat (piemērs)

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

Palaižot BAT failu, var redzēt, ka fails tiek kopēts uz publiskās mapes atrašanās vietu. Šobrīd nav < programmas nosaukuma >.exe failu, taču tas nav nepieciešams, jo tas sākotnēji ir iekļauts iestatīšanā.exe.

Papildināt

Ja risinājumā ir vairāki projekti, tas tiek palaists CopyPublishedApplication visiem projektiem. Vairumā gadījumu tas ir iestatīts tikai uz exe projektu, tāpēc kļūda tiks parādīta, darbojoties CopyPublishedApplication citā projektā, To var droši ignorēt, jo tas parāda tikai ziņojumu.

Publicēšana publisko mapju atrašanās vietā (FTP)

Es to neesmu izmēģinājis, bet, iespējams, vēlēsities atsaukties uz šīm vietnēm.

Citas lietas, kas jāpatur prātā