【问题标题】:How does .net core project know which files to include while building.net core 项目如何知道构建时要包含哪些文件
【发布时间】: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 核心项目在编译时如何包含文件。

【问题讨论】:

    标签: .net-core csproj


    【解决方案1】:

    它们现在来自通过 Microsoft.NET.Sdk MSBuild sdk 导入的 msbuild 定义文件,并使用通配符根据项目文件的位置指定搜索模式。

    如果你写了(简化的)等价物

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

    到项目文件中,msbulid 已经支持了很长时间,但与 Visual Studio 工具不兼容。如果您在属性窗口中排除某些文件或更改元数据,新项目系统可以更好地处理通配符,然后添加适当的&lt;Compile Remove".."/&gt;Update=".." 定义。

    默认项目的源代码位于here,以及一些由 web-sdk 为 ASP.NET Core 项目带来的额外定义here

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-10-28
      • 2010-11-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-04-20
      • 2016-01-21
      相关资源
      最近更新 更多