Seçili yapı yapılandırmasına bağlı olarak ClickOnce ayarlarını değiştirme (yalnızca .NET Framework sürümü)

Sayfa güncel :
Sayfa oluşturma tarihi :

çevre

Framework
  • Genel olarak Windows Forms (.NET Framework)
  • Genel olarak WPF (.NET Framework)

Öncül

Bu ipuçlarının içeriği, .NET Framework için proje varsayımlarıdır. .NET (Core) durumunda, yapı yapılandırma biriminde ClickOnce yayımlama ayarlarını ayarlayabilirsiniz, bu nedenle lütfen her zamanki gibi yayımlayın.

Ayrıca, ClickOnce'ı normal şekilde kullanmak için yeterli bilgiye sahip olduğunuzu varsayar.

İlk başta

Bir .NET Framework projesinin yalnızca bir ClickOnce yayımlama ayarı olabileceğinden, Örneğin, Hata Ayıklama yapısında ve Sürüm yapısında farklı ayarlarla yayımlamak için, yayımlamadan önce ayarları her seferinde el ile değiştirmeniz gerekir.

Projeleri bir DLL içinde gruplandırarak ve yayımlamak üzere iki ayrı proje oluşturarak iki ayara sahip olabilirsiniz. Aynı yapılandırmaya iki kez sahip olursunuz ve yayımlamak için gerekli kaynak dosyaları varsa, aynı anda iki tanesine sahip olmanız gerekir, böylece yönetim zahmetli olur.

Bu bölümde, bir toplu iş dosyasının (.bat) ihtiyacınız olduğu kadar çok ayarın nasıl oluşturulacağı ve ClickOnce yayımlanacağı açıklanmaktadır.

ClickOnce'ı Yapılandırma

Bu kez, "Ortak Klasör Konumu" ve "Kurulum Klasörü URL'si", "Hata Ayıklama Yapısı" ve "Yapıyı Serbest Bırak" için ayrıldı. Diğer ayarlar, onları ortak hale getirme ilkesiyle oluşturulur. Diğer parametreler ayrı olabilir, ancak "uygulama dosyalarını" ve "önkoşulları" ayrı tutmak hantal olabilir.

İlk olarak, projeyi açın ve ClickOnce ayarlarınızı her zamanki gibi girin. Giriş içeriği, Hata Ayıklama tarafından verilecek parametrelere ayarlanır, ancak ortak parça dışındaki herhangi bir şey, bir hataya neden olmadığı sürece iyidir.

Aşağıda yapılandırmaya bir örnek verilmiştir:

Yazdıktan sonra projeyi kaydedin.

ClickOnce yayımlama için .bat dosyası oluşturma

Bir komutla verildiğinden, PowerShell gibi diğer ortamlarda yürütülebilir, ancak bu sefer bir BAT dosyası olarak oluşturulur.

Dosyayı istediğiniz yerde oluşturabilirsiniz, ancak basitlik amacıyla, çözüm dosyasının konumunda (.sln) oluşturacağım. BAT dosyası olduğundan, karakter kodlaması Shift-JIS'tir. PS1, UTF-8 (BOM) olabilir.

BAT dosyasını bir metin düzenleyicisinde açın ve şunu yazın: PowerShell'in kaçmayı farklı şekilde işleyebileceğini unutmayın.

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

İlk satır "Geliştirici Komut İstemi" nin konumuna işaret eder. Bu yol, yüklediğiniz Visual Studio sürümüne bağlıdır.

Yolun her parçası aşağıdaki koşullara bağlıdır:

Program Dosyaları
Yol Koşulları
Program Dosyaları
  • 32 bit işletim sistemi kullanıyorsanız
  • 64 bit işletim sisteminde Visual Studio'nun 64 bit sürümünü kullanıyorsanız
Program Dosyaları (x86)
  • 64 bit işletim sisteminde Visual Studio'nun 32 bit sürümünü kullanıyorsanız
2022
Bu, yüklediğiniz Visual Studio sürümüne bağlıdır.
Topluluk
Bu, yüklediğiniz Visual Studio sürümüne bağlıdır. "Topluluk", "Profesyonel", "Kurumsal" vb. girilecektir.

İkinci satır, geçerli dizini BAT dosyasının konumuna taşır.

Üçüncü satır, ClickOnce yapı işleme komutudur. Her parametrenin anlamı aşağıdaki gibidir.

parametre adı açıklaması
msbuild Yapı işlemini yürüten bir komut. Önce gerekli ve yazılmış.
ClickOnceBuildConfiguration.sln Oluşturulacak çözümün dosya adını açıklar.
/t:Publish Bir ClickOnce yapı işlemini gösterir.
/p:Configuration=Debug Çözümünüz için ayarladığınız yapı yapılandırmasını belirtir. Oluşturulacak hata ayıklama yapılandırmasını değiştirmek istiyorsanız, "Hata Ayıklama" bölümündeki metni değiştirin.
/p:PublishUrl="publish\Debug\\" Visual Studio yayımlama ekranındaki "Ortak klasör konumu" değerinin üzerine belirtilen dizeyi yazın ve yürütün.
/p:InstallUrl="\\xxxxServer\publish_Debug\\" Visual Studio yayımlama ekranındaki "Yükleme klasörü URL'si" değerinin üzerine belirtilen dizeyi yazın ve yürütün.

Bazı parametreler ayıklanmıştır, ancak diğer parametreler için aşağıdaki bağlantılara bakın:

Bu sefer örnek olarak, her hata ayıklama ve Sürüm yapısında ClickOnce'ın yayımlama parametrelerini değiştireceğiz, böylece aşağıdaki gibi oluşturacağız.

ClickOnceDebug tarafından yayınlandı.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 Yayınlanan .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 BAT Dosya Yürütmeyi Yayımlar

Her BAT dosyasını çalıştırmayı deneyin.

Komut istemi başlatılır ve yapı başlatılır.

Aslında, bu sefer oluşturulan BAT dosyası yalnızca yapıya kadar bir işlemdir, bu nedenle dosya "ortak klasör konumunda" oluşturulmaz. Yayın için gerekli dosyalar oluşturulmuştur. Örneğin, bir hata ayıklama yapısı söz konusu olduğunda, "< proje klasörü yolu >\bin\Debug\app.publish\" içinde bir dosyanız olmalıdır. Bu dosyaları "yükleme klasörünün URL'si" ne kopyalayın ve ClickOnce olarak düzgün çalışacaktır.

Ortak klasör konumuna yayımlama (hedef doğrudan erişiminiz olan bir klasörse)

Aşağıdaki site bu bölüm için referans olarak kullanılmıştır.

Bu alan doğrudan ClickOnce'ın işlenmesiyle ilgili değildir, bu nedenle ayrıntılı bir açıklama için lütfen yukarıdaki siteye bakın.

İlk olarak, proje dosyasını (.csproj) bir metin düzenleyicisinde açın. Bu bir çözüm dosyası değildir.

İçinde bir XML yapısı vardır ve en alta kaydırırsanız, yukarıdaki satıra aşağıdaki kodu ekleyin </Project> . Bu bir dosya kopyalama öncül işlemiyse, içerik sabittir, ancak kısmı keyfidir CopyPublishedApplication . Bu adı daha sonra kullanacaksınız.

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

Girdikten sonra kaydedin.

Ardından her BAT dosyasını açın ve msbuild parametrelerine /t:CopyPublishedApplication ekleyin. CopyPublishedApplication sana daha önce verdiğim isimdir.

ClickOnceDebug yayımlar.bat (örnek)

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

BAT dosyasını çalıştırdığınızda, dosyanın Ortak Klasör Konumuna kopyalandığını görebilirsiniz. Şu anda, < program adı >.exe dosyası yoktur, ancak başlangıçta kurulum.exe dahil edildiğinden gereksizdir.

ek

Çözümde birden çok proje varsa, tüm projeler için çalışır CopyPublishedApplication . Çoğu durumda, yalnızca exe projesine ayarlanır, bu nedenle başka bir projede CopyPublishedApplication çalışırken bir hata görüntülenir, Yalnızca bir mesaj görüntülediği için yok saymak güvenlidir.

Ortak klasör konumuna yayımlama (FTP için)

Denemedim, ancak aşağıdaki sitelere başvurmak isteyebilirsiniz.

Akılda tutulması gereken diğer şeyler