Profil penerbitan Visual Studio (.pubxml) untuk penyebaran aplikasi ASP.NET Core
Catatan
Ini bukan versi terbaru dari artikel ini. Untuk rilis saat ini, lihat versi .NET 8 dari artikel ini.
Peringatan
Versi ASP.NET Core ini tidak lagi didukung. Untuk informasi selengkapnya, lihat Kebijakan Dukungan .NET dan .NET Core. Untuk rilis saat ini, lihat versi .NET 8 dari artikel ini.
Penting
Informasi ini berkaitan dengan produk pra-rilis yang mungkin dimodifikasi secara substansial sebelum dirilis secara komersial. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
Untuk rilis saat ini, lihat versi .NET 8 dari artikel ini.
Oleh Sayed Ibrahim Hashimi dan Rick Anderson
Dokumen ini berfokus pada penggunaan Visual Studio 2019 atau yang lebih baru untuk membuat dan menggunakan profil penerbitan. Profil penerbitan yang dibuat dengan Visual Studio dapat digunakan dengan MSBuild dan Visual Studio. Untuk instruksi tentang menerbitkan ke Azure, lihat Menerbitkan aplikasi ASP.NET Core ke Azure dengan Visual Studio.
dotnet new mvc
Perintah menghasilkan file proyek yang berisi elemen Proyek> tingkat <akar berikut:
<Project Sdk="Microsoft.NET.Sdk.Web">
<!-- omitted for brevity -->
</Project>
Atribut elemen sebelumnya <Project>
mengimpor properti dan target MSBuild dari $(MSBuildSDKsPath)\Microsoft.NET.Sdk.Web\Sdk\Sdk.props dan $(MSBuildSDKsPath)\Microsoft.NET.Sdk.Web\Sdk\Sdk.targets, masing-masing.Sdk
Lokasi default untuk $(MSBuildSDKsPath)
(dengan Visual Studio 2019 Enterprise) adalah folder %programfiles(x86)%\Microsoft Visual Studio\2019\Enterprise\MSBuild\Sdks .
Microsoft.NET.Sdk.Web
(Web SDK) tergantung pada SDK lain, termasuk Microsoft.NET.Sdk
(.NET Core SDK) dan Microsoft.NET.Sdk.Razor
(Razor SDK). Properti dan target MSBuild yang terkait dengan setiap SDK dependen diimpor. Terbitkan target mengimpor sekumpulan target yang sesuai berdasarkan metode penerbitan yang digunakan.
Saat MSBuild atau Visual Studio memuat proyek, tindakan tingkat tinggi berikut terjadi:
- Membuat proyek
- Komputasi file untuk dipublikasikan
- Menerbitkan file ke tujuan
Item proyek komputasi
Saat proyek dimuat, item proyek MSBuild (file) dihitung. Jenis item menentukan bagaimana file diproses. Secara default, .cs
file disertakan Compile
dalam daftar item. File dalam daftar item dikompilasi Compile
.
Daftar Content
item berisi file yang diterbitkan selain output build. Secara default, file yang cocok dengan pola wwwroot\**
, , **\*.config
dan **\*.json
disertakan dalam Content
daftar item. Misalnya, wwwroot\**
pola globbing cocok dengan semua file di folder wwwroot dan subfoldernya.
Web SDK mengimpor Razor SDK. Akibatnya, file yang cocok dengan pola **\*.cshtml
dan **\*.razor
juga disertakan dalam Content
daftar item.
Web SDK mengimpor Razor SDK. Akibatnya, file yang cocok dengan **\*.cshtml
pola juga disertakan dalam Content
daftar item.
Untuk menambahkan file secara eksplisit ke daftar penerbitan, tambahkan file langsung dalam file seperti yang ditunjukkan .csproj
di bagian Sertakan File .
Saat memilih tombol Terbitkan di Visual Studio atau saat menerbitkan dari baris perintah:
- Properti/item dihitung (file yang diperlukan untuk membangun).
- Hanya Visual Studio: Paket NuGet dipulihkan. (Pemulihan harus eksplisit oleh pengguna di CLI.)
- Proyek dibangun.
- Item penerbitan dihitung (file yang diperlukan untuk diterbitkan).
- Proyek diterbitkan (file komputasi disalin ke tujuan penerbitan).
Saat proyek ASP.NET Core mereferensikan Microsoft.NET.Sdk.Web
dalam file proyek, app_offline.htm
file ditempatkan di akar direktori aplikasi web. Jika file ada, ASP.NET Core Module akan dengan lancar mematikan aplikasi dan menyajikan file app_offline.htm
selama penyebaran. Untuk informasi lebih lanjut, lihat Referensi konfigurasi ASP.NET Core Module.
Penerbitan baris perintah dasar
Penerbitan baris perintah berfungsi di semua platform yang didukung .NET Core dan tidak memerlukan Visual Studio. Dalam contoh berikut, perintah publikasi dotnet .NET CLI dijalankan dari direktori proyek (yang berisi .csproj
file). Jika folder proyek bukan direktori kerja saat ini, secara eksplisit meneruskan jalur file proyek. Contohnya:
dotnet publish C:\Webs\Web1
Jalankan perintah berikut untuk membuat dan menerbitkan aplikasi web:
dotnet new mvc
dotnet publish
Perintah dotnet publish
menghasilkan variasi output berikut:
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\
Format folder penerbitan default adalah bin\Debug\{TARGET FRAMEWORK MONIKER}\publish\. Misalnya, bin\Debug\netcoreapp2.2\publish\.
Perintah berikut menentukan Release
build dan direktori penerbitan:
dotnet publish -c Release -o C:\MyWebs\test
Perintah dotnet publish
memanggil MSBuild, yang memanggil Publish
target. Parameter apa pun yang diteruskan ke dotnet publish
diteruskan ke MSBuild. Parameter -c
dan -o
masing-masing memetakan ke properti dan OutputPath
MSBuildConfiguration
.
Properti MSBuild dapat diteruskan menggunakan salah satu format berikut:
-p:<NAME>=<VALUE>
/p:<NAME>=<VALUE>
Misalnya, perintah berikut menerbitkan build Release
ke berbagi jaringan. Berbagi jaringan ditentukan dengan garis miring (r8/) dan berfungsi pada semua platform yang didukung .NET Core.
dotnet publish -c Release /p:PublishDir=//r8/release/AdminWeb
Konfirmasikan bahwa aplikasi yang diterbitkan untuk penyebaran tidak berjalan. File di folder terbitkan dikunci saat aplikasi berjalan. Penyebaran tidak dapat terjadi karena file terkunci tidak dapat disalin.
Terbitkan profil
Bagian ini menggunakan Visual Studio 2019 atau yang lebih baru untuk membuat profil penerbitan. Setelah profil dibuat, penerbitan dari Visual Studio atau baris perintah tersedia. Profil publikasi dapat menyederhanakan proses penerbitan, dan sejumlah profil dapat ada.
Buat profil publikasi di Visual Studio dengan memilih salah satu jalur berikut:
- Klik kanan proyek di Penjelajah Solusi dan pilih Terbitkan.
- Pilih Terbitkan {PROJECT NAME} dari menu Build .
Tab Terbitkan dari halaman kemampuan aplikasi ditampilkan. Jika proyek tidak memiliki profil penerbitan, halaman Pilih target penerbitan ditampilkan. Anda diminta untuk memilih salah satu target penerbitan berikut:
- Azure App Service
- Azure App Service di Linux
- Azure Virtual Machines
- Folder
- IIS, FTP, Web Deploy (untuk server web apa pun)
- Impor Profil
Untuk menentukan target penerbitan yang paling tepat, lihat Opsi penerbitan apa yang tepat untuk saya.
Saat target Penerbitan folder dipilih, tentukan jalur folder untuk menyimpan aset yang diterbitkan. Jalur folder default adalah bin\{PROJECT CONFIGURATION}\{TARGET FRAMEWORK MONIKER}\publish\. Misalnya, bin\Release\netcoreapp2.2\publish\. Pilih tombol Buat Profil untuk menyelesaikannya.
Setelah profil publikasi dibuat, konten tab Terbitkan berubah. Profil yang baru dibuat muncul di daftar drop-down. Di bawah daftar drop-down, pilih Buat profil baru untuk membuat profil baru lainnya.
Alat penerbitan Visual Studio menghasilkan file Properties/PublishProfiles/{PROFILE NAME}.pubxml MSBuild yang menjelaskan profil penerbitan. File .pubxml :
- Berisi pengaturan konfigurasi publikasi dan digunakan oleh proses penerbitan.
- Dapat dimodifikasi untuk menyesuaikan proses build dan penerbitan.
Saat menerbitkan ke target Azure, file .pubxml berisi pengidentifikasi langganan Azure Anda. Dengan jenis target tersebut, menambahkan file ini ke kontrol sumber tidak disarankan. Saat menerbitkan ke target non-Azure, aman untuk memeriksa file .pubxml .
Informasi sensitif (seperti kata sandi penerbitan) dienkripsi pada tingkat per pengguna/komputer. Ini disimpan dalam file Properties/PublishProfiles/{PROFILE NAME}.pubxml.user . Karena file ini dapat menyimpan informasi sensitif, file tidak boleh diperiksa ke kontrol sumber.
Untuk gambaran umum tentang cara menerbitkan aplikasi web ASP.NET Core, lihat Menghosting dan menyebarkan ASP.NET Core. Tugas dan target MSBuild yang diperlukan untuk menerbitkan aplikasi web ASP.NET Core bersumber terbuka di repositori dotnet/websdk.
Perintah berikut dapat menggunakan profil publikasi folder, MSDeploy, dan Kudu . Karena MSDeploy tidak memiliki dukungan lintas platform, opsi MSDeploy berikut hanya didukung di Windows.
Folder (berfungsi lintas platform):
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>
Paket MSDeploy:
dotnet publish WebApplication.csproj /p:PublishProfile=<MsDeployPackageProfileName>
dotnet build WebApplication.csproj /p:DeployOnBuild=true /p:PublishProfile=<MsDeployPackageProfileName>
Di dalam contoh sebelumnya:
dotnet publish
dandotnet build
mendukung API Kudu untuk diterbitkan ke Azure dari platform apa pun. Penerbitan Visual Studio mendukung API Kudu, tetapi didukung oleh WebSDK untuk penerbitan lintas platform ke Azure.- Jangan meneruskan
DeployOnBuild
kedotnet publish
perintah .
Untuk informasi selengkapnya, lihat Microsoft.NET.Sdk.Publish.
Tambahkan profil publikasi ke folder Properti/PublishProfiles proyek dengan konten berikut:
<Project>
<PropertyGroup>
<PublishProtocol>Kudu</PublishProtocol>
<PublishSiteName>nodewebapp</PublishSiteName>
<UserName>username</UserName>
<Password>password</Password>
</PropertyGroup>
</Project>
Contoh penerbitan folder
Saat menerbitkan dengan profil bernama FolderProfile, gunakan salah satu perintah berikut:
dotnet publish /p:Configuration=Release /p:PublishProfile=FolderProfile
dotnet build /p:DeployOnBuild=true /p:PublishProfile=FolderProfile
msbuild /p:DeployOnBuild=true /p:PublishProfile=FolderProfile
Perintah build dotnet .NET CLI memanggil msbuild
untuk menjalankan proses build dan penerbitan. dotnet build
Perintah dan msbuild
setara saat meneruskan profil folder. Saat memanggil msbuild
langsung di Windows, MSBuild versi .NET Framework digunakan. Memanggil dotnet build
di profil non-folder:
msbuild
Memanggil , yang menggunakan MSDeploy.- Mengalihkan kegagalan (bahkan ketika berjalan di Windows). Untuk menerbitkan dengan profil non-folder, hubungi
msbuild
langsung.
Profil penerbitan folder berikut dibuat dengan Visual Studio dan diterbitkan ke berbagi jaringan:
<?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>
Dalam contoh sebelumnya:
- Properti
<ExcludeApp_Data>
ini hadir hanya untuk memenuhi persyaratan skema XML. Properti<ExcludeApp_Data>
tidak berpengaruh pada proses penerbitan, bahkan jika ada folder App_Data di akar proyek. Folder App_Data tidak menerima perlakuan khusus seperti dalam proyek ASP.NET 4.x. - Properti
<LastUsedBuildConfiguration>
diatur keRelease
. Saat menerbitkan dari Visual Studio, nilai<LastUsedBuildConfiguration>
diatur menggunakan nilai saat proses penerbitan dimulai.<LastUsedBuildConfiguration>
bersifat khusus dan tidak boleh ditimpa dalam file MSBuild yang diimpor. Namun, properti ini dapat diambil alih dari baris perintah menggunakan salah satu pendekatan berikut.Menggunakan CLI .NET:
dotnet publish /p:Configuration=Release /p:PublishProfile=FolderProfile
dotnet build -c Release /p:DeployOnBuild=true /p:PublishProfile=FolderProfile
Menggunakan MSBuild:
msbuild /p:Configuration=Release /p:DeployOnBuild=true /p:PublishProfile=FolderProfile
Menerbitkan ke titik akhir MSDeploy dari baris perintah
Contoh berikut menggunakan aplikasi web ASP.NET Core yang dibuat oleh Visual Studio bernama AzureWebApp. Profil penerbitan Azure Apps ditambahkan dengan Visual Studio. Untuk informasi selengkapnya tentang cara membuat profil, lihat bagian Terbitkan profil .
Untuk menyebarkan aplikasi menggunakan profil publikasi, jalankan msbuild
perintah dari Prompt Perintah Pengembang Visual Studio. Perintah tersedia di folder Visual Studio dari menu Mulai pada taskbar Windows. Untuk akses yang lebih mudah, Anda dapat menambahkan prompt perintah ke menu Alat di Visual Studio. Untuk informasi selengkapnya, lihat Perintah Pengembang untuk Visual Studio.
MSBuild menggunakan sintaks perintah berikut:
msbuild {PATH}
/p:DeployOnBuild=true
/p:PublishProfile={PROFILE}
/p:Username={USERNAME}
/p:Password={PASSWORD}
{PATH}
: Jalur ke file proyek aplikasi.{PROFILE}
: Nama profil publikasi.{USERNAME}
: Nama pengguna MSDeploy.{USERNAME}
dapat ditemukan di profil penerbitan.{PASSWORD}
: Kata sandi MSDeploy.{PASSWORD}
Dapatkan dari {PROFILE}. File PublishSettings. Unduh . File PublishSettings dari:- Penjelajah Solusi: Pilih Lihat>Cloud Explorer. Sambungkan dengan langganan Azure Anda. Buka App Services. Klik kanan aplikasi. Pilih Unduh Profil Terbitkan.
- portal Azure: Pilih Dapatkan profil publikasi di panel Gambaran Umum aplikasi web.
Contoh berikut menggunakan profil penerbitan bernama AzureWebApp - Web Deploy:
msbuild "AzureWebApp.csproj"
/p:DeployOnBuild=true
/p:PublishProfile="AzureWebApp - Web Deploy"
/p:Username="$AzureWebApp"
/p:Password=".........."
Profil penerbitan juga dapat digunakan dengan perintah msbuild dotnet .NET CLI dari shell perintah Windows:
dotnet msbuild "AzureWebApp.csproj"
/p:DeployOnBuild=true
/p:PublishProfile="AzureWebApp - Web Deploy"
/p:Username="$AzureWebApp"
/p:Password=".........."
Penting
dotnet msbuild
Perintah ini adalah perintah lintas platform dan dapat mengkompilasi aplikasi ASP.NET Core di macOS dan Linux. Namun, MSBuild di macOS dan Linux tidak mampu menyebarkan aplikasi ke Azure atau titik akhir MSDeploy lainnya.
Mengatur lingkungan
Sertakan <EnvironmentName>
properti dalam profil penerbitan (.pubxml) atau file proyek untuk mengatur lingkungan aplikasi:
<PropertyGroup>
<EnvironmentName>Development</EnvironmentName>
</PropertyGroup>
Jika Anda memerlukan transformasi web.config (misalnya, mengatur variabel lingkungan berdasarkan konfigurasi, profil, atau lingkungan), lihat Mengubah web.config.
Mengecualikan file
Saat menerbitkan aplikasi web ASP.NET Core, aset berikut disertakan:
- Membangun artefak
- Folder dan file yang cocok dengan pola globbing berikut:
**\*.config
(misalnya, web.config)**\*.json
(misalnya,appsettings.json
)wwwroot\**
MSBuild mendukung pola globbing. Misalnya, elemen berikut <Content>
menekan penyalinan file teks (.txt) di folder wwwroot\content dan subfoldernya:
<ItemGroup>
<Content Update="wwwroot/content/**/*.txt" CopyToPublishDirectory="Never" />
</ItemGroup>
Markup sebelumnya dapat ditambahkan ke profil penerbitan .csproj
atau file. Saat ditambahkan ke .csproj
file, aturan ditambahkan ke semua profil penerbitan dalam proyek.
Elemen berikut <MsDeploySkipRules>
mengecualikan semua file dari folder wwwroot\content :
<ItemGroup>
<MsDeploySkipRules Include="CustomSkipFolder">
<ObjectName>dirPath</ObjectName>
<AbsolutePath>wwwroot\\content</AbsolutePath>
</MsDeploySkipRules>
</ItemGroup>
<MsDeploySkipRules>
tidak akan menghapus target lewati dari situs penyebaran. <Content>
file dan folder yang ditargetkan dihapus dari situs penyebaran. Misalnya, aplikasi web yang disebarkan memiliki file berikut:
Views/Home/About1.cshtml
Views/Home/About2.cshtml
Views/Home/About3.cshtml
Jika elemen berikut <MsDeploySkipRules>
ditambahkan, file tersebut tidak akan dihapus di situs penyebaran.
<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>
Elemen sebelumnya <MsDeploySkipRules>
mencegah file yang dilewati disebarkan. Ini tidak akan menghapus file-file tersebut setelah disebarkan.
Elemen berikut <Content>
menghapus file yang ditargetkan di situs penyebaran:
<ItemGroup>
<Content Update="Views/Home/About?.cshtml" CopyToPublishDirectory="Never" />
</ItemGroup>
Menggunakan penyebaran baris perintah dengan elemen sebelumnya <Content>
menghasilkan variasi output berikut:
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).
Sertakan file
Bagian berikut menguraikan berbagai pendekatan untuk penyertaan file pada waktu penerbitan. Bagian Penyertaan file umum menggunakan DotNetPublishFiles
item , yang disediakan oleh file target penerbitan di Web SDK. Bagian Penyertaan file selektif menggunakan ResolvedFileToPublish
item , yang disediakan oleh file target penerbitan di .NET Core SDK. Karena Web SDK bergantung pada .NET Core SDK, salah satu item dapat digunakan dalam proyek ASP.NET Core.
Penyertaan file umum
Elemen contoh <ItemGroup>
berikut menunjukkan penyalinan folder yang terletak di luar direktori proyek ke folder situs yang diterbitkan. File apa pun yang ditambahkan ke markup <ItemGroup>
berikut disertakan secara default.
<ItemGroup>
<_CustomFiles Include="$(MSBuildProjectDirectory)/../images/**/*" />
<DotNetPublishFiles Include="@(_CustomFiles)">
<DestinationRelativePath>wwwroot/images/%(RecursiveDir)%(Filename)%(Extension)</DestinationRelativePath>
</DotNetPublishFiles>
</ItemGroup>
Markup sebelumnya:
- Dapat ditambahkan ke
.csproj
file atau profil penerbitan. Jika ditambahkan ke.csproj
file, itu disertakan dalam setiap profil penerbitan dalam proyek. - Menyatakan
_CustomFiles
item untuk menyimpan file yang cocok denganInclude
pola globbing atribut. Folder gambar yang direferensikan dalam pola terletak di luar direktori proyek. Properti yang dipesan, bernama$(MSBuildProjectDirectory)
, diselesaikan ke jalur absolut file proyek. - Menyediakan daftar file ke
DotNetPublishFiles
item. Secara default, elemen item<DestinationRelativePath>
kosong. Nilai default ditimpa dalam markup dan menggunakan metadata item terkenal seperti%(RecursiveDir)
. Teks dalam mewakili folder wwwroot/images dari situs yang diterbitkan.
Penyertaan file selektif
Markup yang disorot dalam contoh berikut menunjukkan:
- Menyalin file yang terletak di luar proyek ke folder wwwroot situs yang diterbitkan. Nama file ReadMe2.md dipertahankan.
- Tidak termasuk folder wwwroot\Content .
- Mengecualikan Views\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>
Contoh sebelumnya menggunakan ResolvedFileToPublish
item, yang perilaku defaultnya adalah selalu menyalin file yang disediakan dalam Include
atribut ke situs yang diterbitkan. Mengesampingkan perilaku default dengan menyertakan <CopyToPublishDirectory>
elemen turunan dengan teks dalam baik Never
atau PreserveNewest
. Contohnya:
<ResolvedFileToPublish Include="..\ReadMe2.md">
<RelativePath>wwwroot\ReadMe2.md</RelativePath>
<CopyToPublishDirectory>PreserveNewest</CopyToPublishDirectory>
</ResolvedFileToPublish>
Untuk sampel penyebaran lainnya, lihat file WEB SDK README.
Menjalankan target sebelum atau sesudah penerbitan
Target dan AfterPublish
bawaan BeforePublish
menjalankan target sebelum atau sesudah target penerbitan. Tambahkan elemen berikut ke profil publikasi untuk mencatat pesan konsol baik sebelum dan sesudah penerbitan:
<Target Name="CustomActionsBeforePublish" BeforeTargets="BeforePublish">
<Message Text="Inside BeforePublish" Importance="high" />
</Target>
<Target Name="CustomActionsAfterPublish" AfterTargets="AfterPublish">
<Message Text="Inside AfterPublish" Importance="high" />
</Target>
Menerbitkan ke server menggunakan sertifikat yang tidak tepercaya
<AllowUntrustedCertificate>
Tambahkan properti dengan nilai ke profil penerbitanTrue
:
<PropertyGroup>
<AllowUntrustedCertificate>True</AllowUntrustedCertificate>
</PropertyGroup>
Layanan Kudu
Untuk melihat file dalam penyebaran aplikasi web Azure App Service, gunakan layanan Kudu. Tambahkan scm
token ke nama aplikasi web. Contohnya:
URL | Hasil |
---|---|
http://mysite.azurewebsites.net/ |
Aplikasi Web |
http://mysite.scm.azurewebsites.net/ |
Layanan kudu |
Pilih item menu Konsol Debug untuk melihat, mengedit, menghapus, atau menambahkan file.
Sumber Daya Tambahan:
- Web Deploy (MSDeploy) menyederhanakan penyebaran aplikasi web dan situs web ke server IIS.
- Repositori Web SDK GitHub: Masalah file dan fitur permintaan untuk penyebaran.
- Mengubah web.config
ASP.NET Core