Visual Studio 2017:在类库项目中嵌套文件

2023-12-08

在 Web 项目中,您可以选择嵌套文件

 + startup.cs
   +--startup.internals.cs
   +--startup.configuration.cs

有什么方法可以在类库项目中实现相同的行为吗?

更新:部分解决

好的,我知道了 ,

您需要了解您的文件路径。

对于这样的结构(文件位于项目级别)

+-- myProject.csproj
   +-- startup.cs
   +-- startup.internals.cs
   +-- startup.configuration.cs

那么这就是您正在寻找的配置。

  <ItemGroup>
    <Compile Update="startup.*.cs">
      <DependentUpon>startup.cs</DependentUpon>
    </Compile>
  </ItemGroup>

对于嵌套文件夹结构

+-- myProject.csproject
   +-- Folder_A
      +-- Folder_A1
         +-- startup.cs
         +-- startup.internals.cs
         +-- startup.configuration.cs

您需要使用内置 $(ProjectDir) 宏来获取项目路径

  <ItemGroup>
    <Compile Update=" $(ProjectDir)\Folder_A\Folder_A1\startup.*.cs">
      <DependentUpon> $(ProjectDir)\Folder_A\Folder_A1\startup.cs</DependentUpon>
    </Compile>
  </ItemGroup>

为什么我说它部分工作,因为如果我退出 Visual 然后再次打开它,对于第二种类型的结构,它将取消嵌套文件。

有些帮助任何人吗?


来回答您的更新:部分解决:

类似的东西这个问题. DependentUpon是用于实现所需嵌套的正确元素。

但是,您的值不能是包含通配符的表达式。它必须是同一文件夹或子文件夹下的单个文件。如果您的文件存在于子文件夹中,则必须通过相对路径指定该文件。所以你的内容ItemGroup应该是这样的:

<Compile Include="Folder_A\Folder_A1\startup.cs" />
<Compile Include="Folder_A\Folder_A1\startup.configuration.cs">
  <DependentUpon>startup.cs</DependentUpon>
</Compile>
<Compile Include="Folder_A\Folder_A1\startup.internals.cs">
  <DependentUpon>startup.cs</DependentUpon>
</Compile>

经过我的检查,我认为你需要使用Include属性而不是Update如果您正在构建 .NET FX 类库项目。

Update: The Update属性仅适用于 .NET Core 项目,根据this doc.

如果在 .NET Core 项目中,就像您在评论中指出的那样,也许Update更合适的是:

<Compile Update="Folder_A\Folder_A1\startup.internals.cs">
  <DependentUpon>startup.cs</DependentUpon>
</Compile>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Visual Studio 2017:在类库项目中嵌套文件 的相关文章

随机推荐