在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
您需要使用buildin $ {ProjectDir)宏来掌握项目路径
<ItemGroup>
<Compile Update=" $(ProjectDir)\Folder_A\Folder_A1\startup.*.cs">
<DependentUpon> $(ProjectDir)\Folder_A\Folder_A1\startup.cs</DependentUpon>
</Compile>
</ItemGroup>
为什么我说它部分起作用,因为如果我退出Visual然后再次打开它,对于第二种类型的结构,它将取消嵌套文件的操作。
有人帮助吗?
答案 0 :(得分:2)
我相信您可以在csproj文件中执行此操作。
<Compile Include="startup.cs">
<DependentUpon>startup.internals.xaml</DependentUpon>
<DependentUpon>startup.configureation.xaml</DependentUpon>
</Compile>
答案 1 :(得分:1)
要回答您的更新:
类似于this issue的事物。 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>
经过检查,我认为如果使用.net fx类库项目,则需要使用“包含”元素而不是“更新”。
更新:
(Update
元素仅适用于根据this doc的.net核心项目。)
如果在.net核心项目中(如MCR测试的那样),也许Update
更合适。