Dot-Net-Core

.net core 項目如何知道建構時要包含哪些文件

  • May 11, 2018

.csproj我觀察到.Net 標準和 .Net Core中的文件存在差異。

在 .Net 項目中,所有文件(.cs,.js etc)都包含在.csproj每個項目的文件中。例如:

<Compile Include="ViewModel\LiveViewViewModel.cs" />
<Compile Include="ViewModel\RegistrationViewModel.cs" />
<Compile Include="Views\LiveView.xaml.cs">
 <DependentUpon>LiveView.xaml</DependentUpon>
</Compile>

但是,如果我看到新的 .Net Core.csproj文件,則沒有提及任何.cs/.js或任何文件。

我很想了解 .net 核心項目在編譯時如何包含文件。

它們現在來自通過Microsoft.NET.SdkMSBuild sdk 導入的 msbuild 定義文件,並使用萬用字元根據項目文件的位置指定搜尋模式。

如果您寫了(簡化的)等價物

<Compile Include="**\*.cs" />

到項目文件中,msbulid 已經支持了很長時間,但在 Visual Studio 工具中不能很好地工作。如果您在屬性視窗中排除某些文件或更改元數據,新項目系統可以更好地處理萬用字元,然後添加適當的<Compile Remove".."/>或定義。Update=".."

預設項目的原始碼可在此處找到,還有一些由 web-sdk 為 ASP.NET Core 項目引入的額外定義可在此處找到

引用自:https://stackoverflow.com/questions/50289241