Промяна на настройките на ClickOnce в зависимост от избраната конфигурация за изграждане (само версия на .NET Framework)

Страницата се актуализира :
Дата на създаване на страница :

околна среда

рамка
  • Формуляри на Windows (.NET Framework) като цяло
  • WPF (.NET Framework) като цяло

Предпоставката

Съдържанието на тези съвети са проектни предположения за .NET Framework. В случай на .NET (Core) можете да зададете ClickOnce настройки за публикуване в конфигурационната единица за изграждане, така че моля, публикувайте както обикновено.

Той също така предполага, че имате достатъчно знания, за да използвате ClickOnce нормално.

Отначало

Тъй като .NET Framework проект може да има само една настройка за публикуване на ClickOnce, Например, за да публикувате с различни настройки в debug компилация и компилация на Release, трябва ръчно да променяте настройките всеки път преди публикуването.

Можете да имате две настройки, като групирате проектите в DLL и създадете два отделни проекта за публикуване. Ще имате една и съща конфигурация два пъти и ако има ресурсни файлове, необходими за публикуване, трябва да имате две от тях наведнъж, така че управлението ще бъде обезпокоително.

Този раздел описва как да създадете пакетен файл (.bat) толкова настройки, колкото ви е необходимо, и да публикувате ClickOnce.

Конфигуриране на ClickOnce

Този път "Местоположение на публичната папка" и "URL адрес на инсталационната папка" бяха разделени за "Debug Build" и "Release Build". Други настройки се създават с политиката на превръщането им в общи. Други параметри могат да бъдат отделни, но може да бъде тромава, за да запазите "файловете на приложението" и "предпоставки" отделно.

Първо отворете проекта и въведете настройките си clickOnce както обикновено. Входното съдържание е зададено на параметри, които трябва да бъдат издадени от Debug, но всичко друго освен общата част е наред, стига да не предизвиква грешка.

По-долу е пример за конфигурацията:

След като въведете, запишете проекта.

Създаване на .bat файл за clickOnce публикуване

Тъй като тя се издава с команда, тя може да бъде изпълнена на други медии като PowerShell, но този път тя се създава като НДНТ файл.

Можете да създадете файла навсякъде, но за целите на простотата ще го създам в местоположението на файла с решение (.sln). Тъй като е файл за НДНТ, кодирането на знаците е Shift-JIS. PS1 може да бъде UTF-8 (КИ).

Отворете файла НДНТ в текстов редактор и въведете: Имайте предвид, че PowerShell може да се справи с бягството по различен начин.

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

Първият ред сочи към местоположението на "Команден ред за разработчици". Този път зависи от версията на Visual Studio, която инсталирате.

Всяка част от пътя зависи от следните условия:

Програмни файлове
Условия на пътя
Програмни файлове
  • Ако използвате 32-битова OS
  • Ако използвате 64-битова версия на Visual Studio на 64-битова OS
Програмни файлове (x86)
  • Ако използвате 32-битова версия на Visual Studio на 64-битова OS
2022
Зависи от версията на Visual Studio, която инсталирате.
Общност
Зависи от изданието на Visual Studio, което инсталирате. "Общност", "Професионалист", "Ентърпрайз" и др.

Вторият ред премества текущата директория на местоположението на НДНТ файла.

Третият ред е командата clickOnce компилация обработка. Значението на всеки параметър е както следва.

описание на име на параметър
msbuild Команда, която изпълнява процеса на изграждане. Изисква се и пише първо.
Щракнете върхуOnceBuildКонфигуриране.sln Описва името на файла на решението, което трябва да бъде изградено.
/t:Publish Показва процес на изграждане на ClickOnce.
/p:Configuration=Debug Задава конфигурацията на компилацията, която сте задали за вашето решение. Ако искате да промените конфигурацията на debug, която трябва да бъде изградена, променете текста в частта "Debug".
/p:PublishUrl="publish\Debug\\" Презапис на стойността на "Местоположение на публична папка" на екрана за публикуване на Visual Studio с посочения низ и да го изпълни.
/p:InstallUrl="\\xxxxServer\publish_Debug\\" Презапис на стойността на "URL адрес на инсталационната папка" на екрана за публикуване на Visual Studio с посочения низ и го изпълни.

Някои от параметрите са извлечени, но вижте следните връзки за други параметри:

Като извадка този път ще променим параметрите за публикуване на ClickOnce във всяка компилация на debug и Release, така че ще го създадем, както следва.

Публикувано от 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\\"

ЩракнетеОнсРелайз Публикувано .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 Публикува изпълнение на НДНТ файл

Опитайте да стартирате всеки НДНТ файл.

Командният ред се стартира и стартира компилацията.

Всъщност файлът НДНТ, създаден този път, е само процес до компилацията, така че файлът не е създаден в "местоположението на публичната папка". Файловете, необходими за публикуване, са създадени. Например в случай на debug компилация, трябва да имате файл в "< проект папка път >\bin\Debug\app.publish\". Копирайте тези файлове в "URL адреса на инсталационната папка" и тя ще работи правилно като ClickOnce.

Публикуване в местоположение на публична папка (ако местоназначението е папка, до която имате директен достъп)

Следният сайт се използва като препратка за тази част.

Тази област не е пряко свързана с обработката на ClickOnce, така че, моля, вижте горния сайт за подробно обяснение.

Първо отворете файла на проекта (.csproj) в текстов редактор. Той не е файл с решение.

Вътре има XML структура и ако превъртите до дъното, добавете следния </Project> код към реда над нея. Ако това е файл копие предпоставка процес, съдържанието са фиксирани, но частта от е CopyPublishedApplication произволен. Ще използвате това име по-късно.

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

Запишете го, след като сте го въвели.

След това отворете всеки НДНТ файл и добавете към параметрите msbuild /t:CopyPublishedApplication . CopyPublishedApplication е името, което ти дадох по-рано.

ClickOnceDebug публикува.bat (пример)

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

Когато стартирате НДНТ файла, можете да видите, че файлът се копира в местоположението на публичната папка. По това време няма < име на програма >.exe файл, но е ненужно, защото първоначално е включено в настройката.exe.

допълнение

Ако в решението има няколко проекта, изпълнява CopyPublishedApplication се за всички проекти. В повечето случаи той е зададен само на exe проекта, така че ще се покаже грешка при изпълнение в CopyPublishedApplication друг проект, Безопасно е да го игнорирате, защото показва само съобщение.

Публикуване в местоположение на публична папка (за FTP)

Не съм го опитвал, но може да искате да се обърнете към следните сайтове.

Други неща, които трябва да имате предвид