Zmień ustawienia ClickOnce w zależności od wybranej konfiguracji kompilacji (tylko wersja .NET Framework)
środowisko
- szkielet
-
- Windows Forms (.NET Framework) w ogólności
- WPF (.NET Framework) ogólnie
przesłanka
Zawartość tych porad jest założeniami projektu dla programu .NET Framework. W przypadku .NET (Core) możesz ustawić ustawienia publikowania ClickOnce w jednostce konfiguracji kompilacji, więc opublikuj jak zwykle.
Zakłada również, że masz wystarczającą wiedzę, aby normalnie korzystać z ClickOnce.
Na początku
Ponieważ projekt .NET Framework może mieć tylko jedno ustawienie publikowania ClickOnce, Na przykład, aby publikować z różnymi ustawieniami w kompilacji debugowania i kompilacji wydania, należy ręcznie zmienić ustawienia za każdym razem przed opublikowaniem.
Możesz mieć dwa ustawienia, grupując projekty w bibliotekę DLL i tworząc dwa oddzielne projekty do opublikowania. Będziesz miał tę samą konfigurację dwa razy, a jeśli istnieją pliki zasobów niezbędne do publikowania, musisz mieć dwa z nich naraz, więc zarządzanie będzie kłopotliwe.
W tej sekcji opisano sposób tworzenia pliku wsadowego (.bat) tylu ustawień, ile potrzeba i publikowania ClickOnce.
Konfigurowanie ClickOnce
Tym razem "Lokalizacja folderu publicznego" i "Adres URL folderu instalacyjnego" zostały oddzielone dla "Debug Build" i "Release Build". Inne ustawienia są tworzone zgodnie z zasadą ich upowszechniania. Inne parametry mogą być oddzielne, ale może być kłopotliwe, aby zachować oddzielne "pliki aplikacji" i "wymagania wstępne".
Najpierw otwórz projekt i wprowadź ustawienia ClickOnce jak zwykle. Zawartość wejściowa jest ustawiona na parametry, które mają być wydawane przez Debug, ale wszystko inne niż wspólna część jest w porządku, o ile nie powoduje błędu.
Poniżej przedstawiono przykład konfiguracji:
Po wpisaniu zapisz projekt.
Tworzenie pliku .bat dla publikowania ClickOnce
Ponieważ jest wydawany z poleceniem, może być wykonywany na innych nośnikach, takich jak PowerShell, ale tym razem jest tworzony jako plik.
Możesz utworzyć plik w dowolnym miejscu, ale dla uproszczenia utworzę go w lokalizacji pliku rozwiązania (.sln). Ponieważ jest to plik, kodowanie znaków to Shift-JIS. PS1 może być UTF-8 (BOM).
Otwórz plik w edytorze tekstu i wpisz: Zauważ, że PowerShell może radzić sobie z ucieczką inaczej.
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\\"
Pierwszy wiersz wskazuje lokalizację "Developer Command Prompt". Ta ścieżka zależy od wersji instalowanego programu Visual Studio.
Każda część ścieżki zależy od następujących warunków:
- Pliki programów
-
Warunki ścieżki Pliki programów - Jeśli używasz 32-bitowego systemu operacyjnego
- Jeśli używasz 64-bitowej wersji programu Visual Studio w 64-bitowym systemie operacyjnym
Programy Plików (x86) - Jeśli używasz 32-bitowej wersji programu Visual Studio w 64-bitowym systemie operacyjnym
- 2022
- To zależy od wersji instalowanego programu Visual Studio.
- Społeczność
- To zależy od instalowanej wersji programu Visual Studio. Zostaną wprowadzone "Społeczność", "Professional", "Enterprise" itp.
Drugi wiersz przenosi bieżący katalog do lokalizacji pliku.
Trzeci wiersz to polecenie przetwarzania kompilacji ClickOnce. Znaczenie każdego parametru jest następujące.
opis | nazwy parametru |
---|---|
msbuild | Polecenie, które wykonuje proces kompilacji. Wymagane i napisane jako pierwsze. |
ClickOnceBuildConfiguration.sln | W tym artykule opisano nazwę pliku rozwiązania, które ma zostać skompilowane. |
/t:Publish |
Wskazuje proces kompilacji ClickOnce. |
/p:Configuration=Debug |
Określa konfigurację kompilacji ustawioną dla rozwiązania. Jeśli chcesz zmienić konfigurację debugowania, która ma zostać skompilowana, zmień tekst w części "Debugowanie". |
/p:PublishUrl="publish\Debug\\" |
Zastąp wartość "Lokalizacja folderu publicznego" na ekranie publikowania programu Visual Studio określonym ciągiem i wykonaj go. |
/p:InstallUrl="\\xxxxServer\publish_Debug\\" |
Zastąp wartość "Adres URL folderu instalacyjnego" na ekranie publikowania programu Visual Studio określonym ciągiem i wykonaj go. |
Niektóre parametry zostały wyodrębnione, ale zobacz następujące łącza dla innych parametrów:
Jako przykład tym razem zmienimy parametry publikowania ClickOnce w każdej kompilacji debugowania i wydania, więc utworzymy ją w następujący sposób.
Opublikowane przez 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\\"
Opublikowana .bat ClickOnceRelease
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 publikuje wykonanie pliku
Spróbuj uruchomić każdy plik.
Zostanie uruchomiony wiersz polecenia i rozpocznie się kompilacja.
W rzeczywistości plik utworzony tym razem jest tylko procesem do kompilacji, więc plik nie jest tworzony w lokalizacji folderu publicznego. Pliki niezbędne do publikacji zostały utworzone. Na przykład w przypadku kompilacji debugowania powinieneś mieć plik w ścieżce folderu "< projektu >\bin\Debug\app.publish\". Skopiuj te pliki do "adresu URL folderu instalacyjnego", a będzie działać poprawnie jako ClickOnce.
Publikowanie w lokalizacji folderu publicznego (jeśli miejscem docelowym jest folder, do którego masz bezpośredni dostęp)
Poniższa strona jest używana jako odniesienie dla tej części.
Ten obszar nie jest bezpośrednio związany z przetwarzaniem ClickOnce, dlatego prosimy o zapoznanie się z powyższą stroną w celu uzyskania szczegółowego wyjaśnienia.
Najpierw otwórz plik projektu (.csproj) w edytorze tekstu. Nie jest to plik rozwiązania.
Wewnątrz znajduje się struktura XML, a jeśli przewiniesz w dół, dodaj </Project>
następujący kod do wiersza nad nim.
Jeśli jest to proces lokalizacji kopii pliku, zawartość jest stała, ale część jest CopyPublishedApplication
dowolna. Tej nazwy użyjesz później.
<!-- ここから 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 の発行処理 -->
Zapisz go po wprowadzeniu.
Następnie otwórz każdy plik i dodaj do /t:CopyPublishedApplication
msbuild parametry. CopyPublishedApplication
to imię, które nadałem ci wcześniej.
ClickOnceDebug publikuje.bat (przykład)
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\\"
Po uruchomieniu pliku widać, że plik jest kopiowany do lokalizacji folderu publicznego. W tej chwili nie ma < nazwy programu >.exe pliku, ale jest to niepotrzebne, ponieważ jest pierwotnie zawarte w instalatorze.exe.
- dodatek
-
Jeśli w rozwiązaniu znajduje się wiele projektów, działa
CopyPublishedApplication
dla wszystkich projektów. W większości przypadków jest on ustawiony tylko na projekt exe, więc błąd zostanie wyświetlony podczas uruchamiania wCopyPublishedApplication
innym projekcie, Można go bezpiecznie zignorować, ponieważ wyświetla tylko komunikat.
Publikowanie w lokalizacji folderu publicznego (dla FTP)
Nie próbowałem tego, ale możesz odwołać się do następujących witryn.
Inne rzeczy, o których należy pamiętać
- Nawet jeśli podzielisz wystawienie ClickOnce na wiele części, encja jest traktowana jako ten sam program, więc na przykład nie można zainstalować programu opublikowanego w Debug i programu opublikowanego z Release w tym samym środowisku. Aby zainstalować, konieczne jest podjęcie działań, takich jak zmiana nazwy każdego zestawu. Zapoznaj się z poniższą witryną, aby zobaczyć, co jest przez nią identyfikowane.