.net core 项目如何知道构建时要包含哪些文件
Posted
技术标签:
【中文标题】.net core 项目如何知道构建时要包含哪些文件【英文标题】:How does .net core project know which files to include while building 【发布时间】:2018-10-21 16:32:17 【问题描述】:我观察到 .Net 标准和 .Net Core 中的 .csproj
文件存在差异。
在 .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 核心项目在编译时如何包含文件。
【问题讨论】:
【参考方案1】:它们现在来自通过 Microsoft.NET.Sdk
MSBuild sdk 导入的 msbuild 定义文件,并使用通配符根据项目文件的位置指定搜索模式。
如果你写了(简化的)等价物
<Compile Include="**\*.cs" />
到项目文件中,msbulid 已经支持了很长时间,但与 Visual Studio 工具不兼容。如果您在属性窗口中排除某些文件或更改元数据,新项目系统可以更好地处理通配符,然后添加适当的<Compile Remove".."/>
或Update=".."
定义。
默认项目的源代码位于here,以及一些由 web-sdk 为 ASP.NET Core 项目带来的额外定义here。
【讨论】:
以上是关于.net core 项目如何知道构建时要包含哪些文件的主要内容,如果未能解决你的问题,请参考以下文章