Visual Studio dağıtımı için yayımlama profillerini (.pubxml) ASP.NET Core yayımlama
Sayed Hash Hashimi ve Rick Anderson tarafından
Bu belge, yayımlama profilleri oluşturmak Visual Studio kullanmak için Visual Studio 2019 veya sonraki bir yıl kullanmaya odaklanır. Visual Studio ile oluşturulan yayımlama profilleri, MSBuild ve Visual Studio. Azure'da yayımlama yönergeleri için Visual Studio ile Azure 'da ASP.NET Core uygulaması yayımlama bkz. .
Komutu, dotnet new mvc aşağıdaki kök düzeyi öğesini içeren bir proje dosyası <Project> üretir:
<Project Sdk="Microsoft.NET.Sdk.Web">
<!-- omitted for brevity -->
</Project>
Önceki öğenin özniteliği, <Project> Sdk sırasıyla $(MSBuildSDKsPath)\Microsoft .NET.Sdk.Web\Sdk\Sdk.props ve $(MSBuildSDKsPath)\Microsoft .NET.Sdk.Web\Sdk\Sdk.targets konumundan MSBuild özelliklerini ve hedeflerini içeri aktarıyor. için varsayılan konum $(MSBuildSDKsPath) (Visual Studio 2019 Enterprise ile) %programfiles(x86)%\Microsoft Visual Studio\2019\Enterprise\MSBuild\Sdks klasörüdür.
Microsoft.NET.Sdk.Web(Web SDK) ve ( SDK ) dahil olmak üzere diğer Microsoft.NET.Sdk SDK'.NET Core SDK Microsoft.NET.Sdk.Razor Razor bağlıdır. Her MSBuild SDK'sı ile ilişkili özellikler ve hedefler içe aktarılır. Yayımlama hedefleri, kullanılan yayımlama yöntemine göre uygun hedef kümelerini içeri aktarın.
Bir MSBuild veya Visual Studio yüklerken, aşağıdaki üst düzey eylemler gerçekleşir:
- Proje oluşturma
- Yayımlayacak işlem dosyaları
- Dosyaları hedefe yayımlama
Proje öğelerini hesaplama
Proje yüklendiğinde, proje MSBuild (dosyalar) hesaplanır. Öğe türü, dosyanın nasıl işlenmeli olduğunu belirler. Varsayılan olarak, .cs dosyaları öğe Compile listesine dahil edilir. Öğe listesinde Compile dosyalar derlenmiş.
Öğe Content listesi, derleme çıkışlarına ek olarak yayımlanan dosyaları içerir. Varsayılan olarak, , ve desenlerini wwwroot\** eşleşen dosyalar öğe listesine dahil **\*.config **\*.json Content edilir. Örneğin, wwwroot\** glob desen wwwroot klasöründeki ve alt klasördeki tüm dosyalarla eş görünür.
Web SDK'sı SDK'yı içeri Razor aktarıyor. Sonuç olarak, ve desenlerini eşleşen **\*.cshtml dosyalar da öğe listesine dahil **\*.razor Content edilir.
Web SDK'sı SDK'yı içeri Razor aktarıyor. Sonuç olarak, desenle eşleşen **\*.cshtml dosyalar da öğe listesine Content eklenir.
Yayımlama listesine açıkça bir dosya eklemek için, dosyayı Dosyaları Ekle bölümünde gösterildiği gibi doğrudan .csproj dosyasına ekleyin.
Dosyada Yayımla düğmesini Visual Studio veya komut satırdan yayımlarken:
- Özellikler/öğeler hesaplanır (derlemek için gereken dosyalar).
- Visual Studio: NuGet paketleri geri yüklenir. (Geri yüklemenin CLI'da kullanıcı tarafından açık olması gerekir.)
- Proje derlemeleri.
- Yayımlama öğeleri hesaplanır (yayımlamak için gereken dosyalar).
- Proje yayımlanır (hesaplanan dosyalar yayımlama hedefine kopyalanır).
Bir ASP.NET Core proje proje dosyasına başvursa, webapp_offline.htmdizininin köküne birapp_offline.htmMicrosoft.NET.Sdk.Web dosyası yerleştirilir. Dosya mevcut olduğunda, ASP.NET Core Modülü uygulamayı başarıyla kapatır ve dağıtım sırasındaapp_offline.htm dosyasını hizmet eder. Daha fazla bilgi için bkz. ASP.NET Core Modülü yapılandırma başvurusu.
Temel komut satırı yayımlama
Komut satırı yayımlama tüm .NET Core tarafından desteklenen platformlarda çalışır ve bu platform için Visual Studio. Aşağıdaki örneklerde, .NET Core CLI'dotnet publish komutu proje dizininden (.csproj dosyasını içerir) çalıştırıldı. Proje klasörü geçerli çalışma dizini değilse, proje dosya yolunu açıkça iletir. Örnek:
dotnet publish C:\Webs\Web1
Web uygulaması oluşturmak ve yayımlamak için aşağıdaki komutları çalıştırın:
dotnet new mvc
dotnet publish
Komutu dotnet publish aşağıdaki çıkışın bir varyasyonu oluşturur:
C:\Webs\Web1>dotnet publish
Microsoft (R) Build Engine version {VERSION} for .NET Core
Copyright (C) Microsoft Corporation. All rights reserved.
Restore completed in 36.81 ms for C:\Webs\Web1\Web1.csproj.
Web1 -> C:\Webs\Web1\bin\Debug\{TARGET FRAMEWORK MONIKER}\Web1.dll
Web1 -> C:\Webs\Web1\bin\Debug\{TARGET FRAMEWORK MONIKER}\Web1.Views.dll
Web1 -> C:\Webs\Web1\bin\Debug\{TARGET FRAMEWORK MONIKER}\publish\
Varsayılan yayımlama klasörü biçimi bin\Debug \ {TARGET FRAMEWORK MONIKER}\publish dizinidir. \ Örneğin, bin\Debug\netcoreapp2.2\publish \.
Aşağıdaki komut bir Release derlemeyi ve yayımlama dizinini belirtir:
dotnet publish -c Release -o C:\MyWebs\test
Komut, dotnet publish MSBuild çağıran bir komut Publish çağırır. 'a geçirilen tüm dotnet publish parametreler, MSBuild. ve -c -o parametreleri, MSBuild ve Configuration OutputPath özellikleriyle eşler.
MSBuild özellikleri aşağıdaki biçimlerden biri kullanılarak geçirilebilir:
-p:<NAME>=<VALUE>/p:<NAME>=<VALUE>
Örneğin, aşağıdaki komut bir ağ Release paylaşımında derleme yayımlar. Ağ paylaşımı eğik çizgilerle (//r8/ ) belirtilir ve desteklenen tüm .NET Core platformlarında çalışır.
dotnet publish -c Release /p:PublishDir=//r8/release/AdminWeb
Dağıtım için yayımlanan uygulamanın çalışmay olduğunu onaylayın. Uygulama çalıştır durumdayken yayımlama klasöründeki dosyalar kilitlenir. Kilitli dosyalar kopyalanamaz olduğundan dağıtım meydana gelen bir durum değil.
Yayımlama profilleri
Bu bölümde, Visual Studio profili oluşturmak için 2019 veya sonraki bir sonraki bir zaman için 2019 veya sonraki bir yıl 2019 ve sonrası 2019 ve sonrası 2019 ve sonrası 2019 ve sonrası 20 Profil oluşturulduktan sonra, Visual Studio veya komut satırı kullanılabilir. Yayımlama profilleri yayımlama işlemini basitleştirebilir ve herhangi bir sayıda profil olabilir.
Aşağıdaki yollardan birini Visual Studio bir yayımlama profili oluşturun:
- Çözüm Gezgini'da projeye sağ tıklayın ve Yayımla'yı seçin.
- Oluştur menüsünden Yayımla {PROJECT NAME} öğesini seçin.
Uygulama özellikleri sayfasının Yayımla sekmesi görüntülenir. Projede yayımlama profili yoksa Yayımlama hedefi seçin sayfası görüntülenir. Aşağıdaki yayımlama hedeflerinden birini seçmeniz istendi:
- Azure App Service
- Linux üzerinde Azure App Service
- Azure Sanal Makineler
- Klasör
- IIS, FTP, Web Dağıtımı (herhangi bir web sunucusu için)
- Profili İçeri Aktar
En uygun yayımlama hedefini belirlemek için bkz. Hangi yayımlama seçenekleri bana uygun.
Klasör yayımlama hedefi seçildiğinde, yayımlanan varlıkları depolamak için bir klasör yolu belirtin. Varsayılan klasör yolu bin \ {PROJECT CONFIGURATION} \ {TARGET FRAMEWORK \ MONIKER}\publish dizinidir. Örneğin, bin\Release\netcoreapp2.2\publish \. Tamamlamak için Profil Oluştur düğmesini seçin.
Yayımlama profili oluşturulduktan sonra Yayımla sekmesinin içeriği değişir. Yeni oluşturulan profil açılan listede görünür. Açılan listenin altında Yeni profil oluştur'a seçerek başka bir yeni profil oluşturun.
Visual Studio yayımlama aracı, yayımlama profilini açıklayan bir Properties/PublishProfiles/{PROFILE NAME}.pubxml MSBuild dosyası üretir. .pubxml dosyası:
- Yayımlama yapılandırma ayarlarını içerir ve yayımlama işlemi tarafından kullanılır.
- Derleme ve yayımlama işlemini özelleştirmek için değiştirilebilir.
Azure hedefine yayımlarken .pubxml dosyası Azure abonelik tanımlayıcınızı içerir. Bu hedef türle, bu dosyayı kaynak denetimine eklemek önerilmez. Azure olmayan bir hedefte yayımlarken .pubxml dosyasını iade etmek güvenlidir.
Hassas bilgiler (parola yayımlama gibi) kullanıcı/makine düzeyinde şifrelenir. Properties/PublishProfiles/{PROFILE NAME}.pubxml.user dosyasında depolanır. Bu dosya hassas bilgileri depolayana kadar kaynak denetimine iade edilemez.
Bir web uygulaması yayımlamaya genel bakış ASP.NET Core bkz. Konak ve dağıtım ASP.NET Core . Bir MSBuild uygulaması yayımlamak için ASP.NET Core gereken MSBuild görevler ve hedefler, dotnet/websdkdeposunda açık kaynaktır.
Aşağıdaki komutlar klasör, MSDeploy ve Kudu yayımlama profillerini kullanabilir. MSDeploy'da platformlar arası destek eksik olduğundan, aşağıdaki MSDeploy seçenekleri yalnızca Windows.
Klasör (platformlar arası çalışır):
dotnet publish WebApplication.csproj /p:PublishProfile=<FolderProfileName>
dotnet build WebApplication.csproj /p:DeployOnBuild=true /p:PublishProfile=<FolderProfileName>
Msdeploy:
dotnet publish WebApplication.csproj /p:PublishProfile=<MsDeployProfileName> /p:Password=<DeploymentPassword>
dotnet build WebApplication.csproj /p:DeployOnBuild=true /p:PublishProfile=<MsDeployProfileName> /p:Password=<DeploymentPassword>
MSDeploy paketi:
dotnet publish WebApplication.csproj /p:PublishProfile=<MsDeployPackageProfileName>
dotnet build WebApplication.csproj /p:DeployOnBuild=true /p:PublishProfile=<MsDeployPackageProfileName>
Yukarıdaki örneklerde:
dotnet publishvedotnet buildAzure 'da herhangi bir platformda yayımlanacak kudu API 'lerini destekler. Visual Studio yayımlama kudu apı 'lerini destekler, ancak Azure 'da platformlar arası yayımlama için websdk tarafından desteklenir.- Komuta geçme
DeployOnBuilddotnet publish.
Daha fazla bilgi için bkz. Microsoft. net. SDK. Publish.
Projenin Properties/PublishProfiles klasörüne aşağıdaki içeriğe sahip bir yayımlama profili ekleyin:
<Project>
<PropertyGroup>
<PublishProtocol>Kudu</PublishProtocol>
<PublishSiteName>nodewebapp</PublishSiteName>
<UserName>username</UserName>
<Password>password</Password>
</PropertyGroup>
</Project>
Klasör Yayımla örneği
Folderprofile adlı bir profille yayımlarken, aşağıdaki komutlardan birini kullanın:
dotnet publish /p:Configuration=Release /p:PublishProfile=FolderProfile
dotnet build /p:DeployOnBuild=true /p:PublishProfile=FolderProfile
msbuild /p:DeployOnBuild=true /p:PublishProfile=FolderProfile
.NET Core CLI DotNet Build komutu, msbuild derleme ve yayımlama işlemini çalıştırmak için çağırır. dotnet buildVe msbuild komutları, bir klasör profilinde geçirilerek eşdeğerdir. msbuilddoğrudan Windows çağrılırken, MSBuild .NET Framework sürümü kullanılır. dotnet buildKlasör olmayan bir profilde çağırma:
msbuildMSDeploy kullanan çağırır.- Bir hata ile sonuçlanır (Windows çalışırken bile). Klasör olmayan bir profille yayımlamak için
msbuilddoğrudan çağırın.
aşağıdaki klasör yayımlama profili, Visual Studio ile oluşturulmuştur ve bir ağ paylaşımında yayımlar:
<?xml version="1.0" encoding="utf-8"?>
<!--
This file is used by the publish/package process of your Web project.
You can customize the behavior of this process by editing this
MSBuild file.
-->
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<WebPublishMethod>FileSystem</WebPublishMethod>
<PublishProvider>FileSystem</PublishProvider>
<LastUsedBuildConfiguration>Release</LastUsedBuildConfiguration>
<LastUsedPlatform>Any CPU</LastUsedPlatform>
<SiteUrlToLaunchAfterPublish />
<LaunchSiteAfterPublish>True</LaunchSiteAfterPublish>
<ExcludeApp_Data>False</ExcludeApp_Data>
<PublishFramework>netcoreapp1.1</PublishFramework>
<ProjectGuid>c30c453c-312e-40c4-aec9-394a145dee0b</ProjectGuid>
<publishUrl>\\r8\Release\AdminWeb</publishUrl>
<DeleteExistingFiles>False</DeleteExistingFiles>
</PropertyGroup>
</Project>
Yukarıdaki örnekte:
<ExcludeApp_Data>Özelliği yalnızca BIR XML şeması gereksinimini karşılamak için vardır.<ExcludeApp_Data>Proje kökünde bir App_Data klasörü olsa bile, özelliğin yayımlama işlemi üzerinde hiçbir etkisi yoktur. App_Data klasörü, ASP.NET 4. x projelerinde olduğu gibi özel bir işleme almaz.<LastUsedBuildConfiguration>özelliğiReleaseolarak ayarlanmıştır. Visual Studio yayımlarken, değeri yayımlama<LastUsedBuildConfiguration>işlemi başlatıldığında değeri kullanılarak ayarlanır.<LastUsedBuildConfiguration>özeldir ve içeri aktarılan bir MSBuild dosyasında geçersiz kılınmamalıdır. Ancak, bu özellik aşağıdaki yaklaşımlardan birini kullanarak komut satırından geçersiz kılınabilir..NET Core CLI kullanarak:
dotnet publish /p:Configuration=Release /p:PublishProfile=FolderProfiledotnet build -c Release /p:DeployOnBuild=true /p:PublishProfile=FolderProfileMSBuild kullanma:
msbuild /p:Configuration=Release /p:DeployOnBuild=true /p:PublishProfile=FolderProfile
Komut satırından bir MSDeploy uç noktasına yayımlama
aşağıdaki örnek, AzureWebApp adlı Visual Studio tarafından oluşturulan ASP.NET Core bir web uygulaması kullanır. Visual Studio bir Azure Apps yayımlama profili eklendi. Profil oluşturma hakkında daha fazla bilgi için, Yayımlama profilleri bölümüne bakın.
uygulamayı bir yayımlama profili kullanarak dağıtmak için, msbuild bir Visual Studio Geliştirici Komut İstemi komutunu yürütün. komut istemi, Windows görev çubuğundaki başlat menüsünün Visual Studio klasöründe bulunur. Daha kolay erişim sağlamak için, Visual Studio araç menüsüne komut istemi ekleyebilirsiniz. Daha fazla bilgi için bkz. Visual Studio Geliştirici komut istemi.
MSBuild aşağıdaki komut sözdizimini kullanır:
msbuild {PATH}
/p:DeployOnBuild=true
/p:PublishProfile={PROFILE}
/p:Username={USERNAME}
/p:Password={PASSWORD}
{PATH}: Uygulamanın proje dosyasının yolu.{PROFILE}: Yayımlama profilinin adı.{USERNAME}: MSDeploy Kullanıcı adı. ,{USERNAME}Yayımlama profilinde bulunabilir.{PASSWORD}: MSDeploy parolası.{PASSWORD}{PROFILE} öğesinden alın. PublishSettings dosyası. ' Nı indirin . PublishSettings dosyası şunlardan biri:- Çözüm Gezgini: > bulut Gezginini görüntüle ' yi seçin. Azure aboneliğinizle Bağlan. Uygulama hizmetleri'ni açın. Uygulamaya sağ tıklayın. Yayımlama profilini indir' i seçin.
- Azure portal: Web uygulamasının genel bakış panelinde Yayımlama profilini al ' ı seçin.
Aşağıdaki örnek, AzureWebApp-Web dağıtımı adlı bir yayımlama profili kullanır:
msbuild "AzureWebApp.csproj"
/p:DeployOnBuild=true
/p:PublishProfile="AzureWebApp - Web Deploy"
/p:Username="$AzureWebApp"
/p:Password=".........."
bir yayımlama profili, Windows komut kabuğu 'ndan .NET Core CLI dotnet msbuild komutuyla da kullanılabilir:
dotnet msbuild "AzureWebApp.csproj"
/p:DeployOnBuild=true
/p:PublishProfile="AzureWebApp - Web Deploy"
/p:Username="$AzureWebApp"
/p:Password=".........."
Önemli
dotnet msbuildkomut, platformlar arası bir komuttur ve macos ve Linux üzerinde ASP.NET Core uygulamalar derleyebilir. ancak, macos ve Linux 'ta MSBuild Azure 'a veya diğer MSDeploy uç noktalarına uygulama dağıtma yeteneğine sahip değildir.
Ortamı ayarlama
<EnvironmentName>Uygulamanın ortamınıayarlamak için Publish profile (. pubxml) veya proje dosyasına özelliği ekleyin:
<PropertyGroup>
<EnvironmentName>Development</EnvironmentName>
</PropertyGroup>
web.config Dönüştürmelere ihtiyacınız varsa (örneğin, yapılandırma, profil veya ortama göre ortam değişkenlerini ayarlamak), bkz Web.config’i dönüştürme ..
Dosyaları Dışla
ASP.NET Core web apps yayımlandığında, aşağıdaki varlıklar dahil edilmiştir:
- Yapı yapıtları
- Aşağıdaki glob desenleriyle eşleşen klasörler ve dosyalar:
**\*.config(örneğin, web.config)**\*.json(örneğin, appsettings.json )wwwroot\**
MSBuild glob desenlerinidestekler. Örneğin, aşağıdaki öğe, <Content> metin (.txt) dosyalarının wwwroot\content klasörü ve alt klasörlerinde kopyalanmasını bastırır:
<ItemGroup>
<Content Update="wwwroot/content/**/*.txt" CopyToPublishDirectory="Never" />
</ItemGroup>
Önceki biçimlendirme bir yayımlama profiline veya . csproj dosyasına eklenebilir. . Csproj dosyasına eklendiğinde, kural projedeki tüm yayımlama profillerine eklenir.
Aşağıdaki <MsDeploySkipRules> öğe, tüm dosyaları wwwroot\content klasöründen dışlar:
<ItemGroup>
<MsDeploySkipRules Include="CustomSkipFolder">
<ObjectName>dirPath</ObjectName>
<AbsolutePath>wwwroot\\content</AbsolutePath>
</MsDeploySkipRules>
</ItemGroup>
<MsDeploySkipRules> dağıtım sitesinden atlama hedeflerini silmez. <Content> hedeflenen dosya ve klasörler dağıtım sitesinden silinir. Örneğin, dağıtılan bir Web uygulamasının aşağıdaki dosyalar olduğunu varsayalım:
- Görünümler/ Home /about1.cshtml
- Görünümler/ Home /About2.cshtml
- Görünümler/ Home /About3.cshtml
Aşağıdaki <MsDeploySkipRules> öğeler eklenirse, bu dosyalar dağıtım sitesinde silinmez.
<ItemGroup>
<MsDeploySkipRules Include="CustomSkipFile">
<ObjectName>filePath</ObjectName>
<AbsolutePath>Views\\Home\\About1.cshtml</AbsolutePath>
</MsDeploySkipRules>
<MsDeploySkipRules Include="CustomSkipFile">
<ObjectName>filePath</ObjectName>
<AbsolutePath>Views\\Home\\About2.cshtml</AbsolutePath>
</MsDeploySkipRules>
<MsDeploySkipRules Include="CustomSkipFile">
<ObjectName>filePath</ObjectName>
<AbsolutePath>Views\\Home\\About3.cshtml</AbsolutePath>
</MsDeploySkipRules>
</ItemGroup>
Önceki <MsDeploySkipRules> öğeler Atlanan dosyaların dağıtılmasını engeller. Dağıtıldıktan sonra bu dosyaları silmez.
Aşağıdaki <Content> öğe, dağıtım sitesindeki hedeflenen dosyaları siler:
<ItemGroup>
<Content Update="Views/Home/About?.cshtml" CopyToPublishDirectory="Never" />
</ItemGroup>
Önceki öğeyle komut satırı dağıtımı kullanmak <Content> , aşağıdaki çıkışın bir varyasyonunu verir:
MSDeployPublish:
Starting Web deployment task from source: manifest(C:\Webs\Web1\obj\Release\{TARGET FRAMEWORK MONIKER}\PubTmp\Web1.SourceManifest.
xml) to Destination: auto().
Deleting file (Web11112\Views\Home\About1.cshtml).
Deleting file (Web11112\Views\Home\About2.cshtml).
Deleting file (Web11112\Views\Home\About3.cshtml).
Updating file (Web11112\web.config).
Updating file (Web11112\Web1.deps.json).
Updating file (Web11112\Web1.dll).
Updating file (Web11112\Web1.pdb).
Updating file (Web11112\Web1.runtimeconfig.json).
Successfully executed Web deployment task.
Publish Succeeded.
Done Building Project "C:\Webs\Web1\Web1.csproj" (default targets).
Dosyaları dahil etme
Aşağıdaki bölümlerde, yayımlama zamanında dosya ekleme için farklı yaklaşımlar ana hatlarıyla verilmiştir. Genel dosya ekleme bölümü, DotNetPublishFiles Web SDK 'sındabir Yayımla hedefi dosyası tarafından belirtilen öğesini kullanır. Seçmeli dosya ekleme bölümü, ResolvedFileToPublish .NET Core SDKbir Yayımla hedefi dosyası tarafından belirtilen öğesini kullanır. Web SDK .NET Core SDK bağlı olduğundan, her iki öğe bir ASP.NET Core projesinde kullanılabilir.
Genel dosya ekleme
Aşağıdaki örnek öğesi, <ItemGroup> proje dizininin dışında bulunan bir klasörü yayımlanmış sitenin bir klasörüne kopyalamayı gösterir. Aşağıdaki biçimlendirmeye eklenen tüm dosyalar <ItemGroup> Varsayılan olarak dahil edilir.
<ItemGroup>
<_CustomFiles Include="$(MSBuildProjectDirectory)/../images/**/*" />
<DotNetPublishFiles Include="@(_CustomFiles)">
<DestinationRelativePath>wwwroot/images/%(RecursiveDir)%(Filename)%(Extension)</DestinationRelativePath>
</DotNetPublishFiles>
</ItemGroup>
Yukarıdaki biçimlendirme:
- . Csproj dosyasına veya yayımlama profiline eklenebilir. . Csproj dosyasına eklenirse, bu, projedeki her bir yayımlama profiline eklenir.
_CustomFilesÖzniteliğin glob düzeniyle eşleşen dosyaları depolamak için bir öğe bildirirInclude. Düzende başvurulan görüntüler klasörü, proje dizininin dışında bulunur. Adlı ayrılmış bir özellik,$(MSBuildProjectDirectory)Proje dosyasının mutlak yoluna çözümlenir.- Öğe için dosyaların bir listesini sağlar
DotNetPublishFiles. Varsayılan olarak, öğenin<DestinationRelativePath>öğesi boştur. Varsayılan değer, biçimlendirmede geçersiz kılınır ve gibi iyi bilinen öğe meta verilerini kullanır%(RecursiveDir). İç metin, yayımlanan sitenin Wwwroot/görüntüler klasörünü temsil eder.
Seçmeli dosya ekleme
Aşağıdaki örnekte vurgulanan biçimlendirme şunları göstermektedir:
- Projenin dışında bulunan bir dosyayı yayınlanan sitenin Wwwroot klasörüne kopyalama. ReadMe2.MD dosyasının adı korunur.
- Wwwroot\content klasörü dışlanıyor.
- Görünümler : dışlama ::no-loc(Home):::\About2.cshtml.
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0"
xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<WebPublishMethod>FileSystem</WebPublishMethod>
<PublishProvider>FileSystem</PublishProvider>
<LastUsedBuildConfiguration>Release</LastUsedBuildConfiguration>
<LastUsedPlatform>Any CPU</LastUsedPlatform>
<SiteUrlToLaunchAfterPublish />
<LaunchSiteAfterPublish>True</LaunchSiteAfterPublish>
<ExcludeApp_Data>False</ExcludeApp_Data>
<PublishFramework />
<ProjectGuid>afa9f185-7ce0-4935-9da1-ab676229d68a</ProjectGuid>
<publishUrl>bin\Release\PublishOutput</publishUrl>
<DeleteExistingFiles>False</DeleteExistingFiles>
</PropertyGroup>
<ItemGroup>
<ResolvedFileToPublish Include="..\ReadMe2.md">
<RelativePath>wwwroot\ReadMe2.md</RelativePath>
</ResolvedFileToPublish>
<Content Update="wwwroot\Content\**\*" CopyToPublishDirectory="Never" />
<Content Update="Views\Home\About2.cshtml" CopyToPublishDirectory="Never" />
</ItemGroup>
</Project>
Yukarıdaki örnek, varsayılan ResolvedFileToPublish davranışı her zaman özniteliğinde sağlanan dosyaları yayımlanan siteye kopyalamak olan öğesini Include kullanır. veya öğesinin iç metnine sahip <CopyToPublishDirectory> bir alt öğe dahil olarak varsayılan davranışı geçersiz Never PreserveNewest kılın. Örnek:
<ResolvedFileToPublish Include="..\ReadMe2.md">
<RelativePath>wwwroot\ReadMe2.md</RelativePath>
<CopyToPublishDirectory>PreserveNewest</CopyToPublishDirectory>
</ResolvedFileToPublish>
Daha fazla dağıtım örneği için Bkz. Web SDK BENİ OKUMA dosyası.
Yayımlamadan önce veya sonra hedef çalıştırma
Yerleşik ve hedefleri BeforePublish AfterPublish yayımlama hedefinin öncesinde veya sonrasında bir hedef yürütür. Yayımlama profiline yayımlamadan önce ve sonra aşağıdaki öğeleri günlük konsolu iletilerine ekleyin:
<Target Name="CustomActionsBeforePublish" BeforeTargets="BeforePublish">
<Message Text="Inside BeforePublish" Importance="high" />
</Target>
<Target Name="CustomActionsAfterPublish" AfterTargets="AfterPublish">
<Message Text="Inside AfterPublish" Importance="high" />
</Target>
Güvenilmeyen sertifika kullanarak sunucuya yayımlama
yayımlama <AllowUntrustedCertificate> profiline True değerine sahip özelliğini ekleyin:
<PropertyGroup>
<AllowUntrustedCertificate>True</AllowUntrustedCertificate>
</PropertyGroup>
Kudu hizmeti
Bir web uygulaması dağıtımında Azure App Service görüntülemek için Kudu hizmetini kullanın. scmBelirteci web uygulaması adına ekleme. Örnek:
| URL | Sonuç |
|---|---|
http://mysite.azurewebsites.net/ |
Web App |
http://mysite.scm.azurewebsites.net/ |
Kudu hizmeti |
Dosyaları görüntülemek, düzenlemek, silmek veya eklemek için Konsolda Hata Ayıkla menü öğesini seçin.
Ek kaynaklar
- Web Dağıtımı (MSDeploy) web uygulamalarının ve web sitelerinin IIS sunucularına dağıtımını basitleştiriyor.
- Web SDK GitHub deposu:Dağıtım için dosya sorunları ve istek özellikleri.
- Web.config’i dönüştürme