歡迎光臨
每天分享高質量文章

ASP.NET Core Web 專案檔案介紹

 

ASP.NET Core Web 專案檔案

 

在本影片中,我們將探索並瞭解asp.net core專案檔案。 我們使用C#作為程式語言,因此專案檔案具有.csproj副檔名。

 

如果您使用過以前版本的ASP.NET,那麼您可能對此檔案非常熟悉,但此檔案中包含的格式和內容在asp.ne Core 中發生了很大變化。

一個重要的變化是,專案檔案不包含任何檔案夾或檔案取用。

簡單解釋後的意思就是。在以前的ASP.NET中,當我們使用解決方案資源管理器向專案新增檔案或檔案夾時,專案檔案中會包含對該檔案或檔案夾的取用。但是在ASP.NET Core 中,專案檔案不包含任何檔案夾或檔案取用。

    由檔案系統來確定哪些檔案和檔案夾屬於專案。在專案的根目錄中存在的所有檔案和檔案夾都是屬於專案的一部分,將顯示在解決方案資源管理器中。

 當您在新增檔案或檔案夾時,該檔案或檔案夾將會變成專案的一部分,會立即顯示在解決方案資源管理器中。 同樣,當您在解決方案下的任何檔案夾中刪除檔案或檔案夾時,該已刪除的檔案或檔案夾不再是專案的一部分,會立即從解決方案資源管理器中不再顯示出來。

另外我們與專案檔案的工作方式也發生了變化。在以前版本的asp.net中,為了能夠編輯專案檔案,我們首先要解除安裝專案,編輯並儲存專案檔案,然後重新載入專案。而在asp.net core 中,我們可以編輯專案檔案而無需解除安裝專案。

在解決方案中,右鍵單擊專案名稱並選擇“編輯 StudentManagement.csproj” 檔案。

 

 

這將在編輯器中開啟.csproj檔案。

<Project Sdk="Microsoft.NET.Sdk.Web">  <PropertyGroup>    <TargetFramework>netcoreapp2.2TargetFramework>

<AspNetCoreHostingModel>InProcessAspNetCoreHostingModel> PropertyGroup> <ItemGroup> <PackageReference Include="Microsoft.AspNetCore.App" /> <PackageReference Include="Microsoft.AspNetCore.Razor.Design" Version="2.2.0" PrivateAssets="All" /> ItemGroup>Project>

 

TargetFramework:顧名思義,此元素是用於指定應用程式的標的框架,即您希望為應用程式提供的APId程式集。為了指定標的框架,我們使用了一個名為Target Framework Moniker(TFM)的東西。正如您在上面的示例中所看到的,我們的應用程式針對TargetFramework 的值為netcoreapp2.2。netcoreapp2.2是.NET Core 2.2的Moniker。當我們建立此應用程式時,我們從新建專案中下拉串列中選擇了.NET Core 2.2作為標的框架。

AspNetCoreHostingModel:此元素指定應如何託管Asp.Net Core應用程式。它表示程式應該託管InProcess(行程內)還是OutOfProcess(行程外)。
InProcess的值指定我們想要使用行程內託管模型,即在IIS工作行程(w3wp.exe)中託管我們的asp.net core 應用程式。
OutOfProcess的值指定我們要使用行程外託管模型,將Web請求轉發到執行Kestrel伺服器的後端ASP.NET Core應用程式。

我們將在即將釋出的影片中詳細討論InProcess(行程內)和OutOfProcess(行程外)託管。

PackageReference:顧名思義,此元素用於包含對為您的應用程式安裝的所有NuGet包的取用。在專案檔案中,我們有以下2個NuGet包。

Microsoft.AspNetCore.App
Microsoft.AspNetCore.Razor.Design

Microsoft.AspNetCore.App:此NuGet包稱為metapackage
metapackage本身是沒有任何的內容的,它只是包含了其他包的依賴資訊。
您可以在解決方案資源管理器中的NuGet下找到此元資料包,而NuGet又位於依賴項(Dependencies)下。展開元資料包時,您可以找到所有依賴項。

 

 

Microsoft.AspNetCore.App裡麵包含了ASP.NET Core 2.2及更高版本和Entity Framework Core 2.2及更高版本的所有元件。

在ASP.NET Core 2.1及更高版本的預設專案模板,都是會使用這個包。

請註意,metapackage中沒有版本號。 未指定版本時,SDK會指定隱式版本。
.NET Core團隊建議依賴SDK指定的隱式版本,而不是在包取用上顯式設定版本號。
如果目前還不完全清楚,請不要擔心。

我們將在即將釋出的影片中詳細討論metapackage和隱式版本。

Microsoft.AspNetCore.Razor.Design:此軟體包包含對Razor的MSBuild支援,並由Microsoft.AspNetCore.App 的metapackage包取用。

摘要

在本文中,我嘗試解釋了在ASP.NET Core中的專案檔案的生成,以及裡面常用的標簽元素。
我希望這篇文章可以幫助您滿足您的需求。我想收到你的反饋意見。請釋出您對本文的反饋,問題或意見。

    贊(0)

    分享創造快樂