Dot-Net-Core
.net core 項目如何知道建構時要包含哪些文件
.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 項目引入的額外定義可在此處找到。