.net - 有条件地包含基于路径的项目
问题描述
我有这个:
MyProject/
Common/
Common.csproj
Main/
Libs/
Utils/
Utils.csproj
Legacy/
Legacy.csproj
Server/
Server.csproj
Directory.Build.props
我希望所有项目都Main/
包含该Common
项目。
所以Directory.Build.props
有这个:
<ItemGroup>
<ProjectReference Include="../../Common/Common.csproj" />
</ItemGroup>
所以Server
项目包括Common
项目,因为它向下两层。但是其中的项目Libs/
不能包含它,因为它是三个级别。
我需要做这样的事情:
<ItemGroup>
<ProjectReference Include="../../Common/Common.csproj" Condition="if 2 levels up is 'MyProject'"/>
<ProjectReference Include="../../../Common/Common.csproj" Condition="if 3 levels up is 'MyProject'"/>
</ItemGroup>
我放Condition
什么?我知道我需要使用MSBuildThisFileDirectory
,但不确定如何使用。
解决方案
<ItemGroup>
<ProjectReference Include="../../Common/Common.csproj" Condition="Exists('../../Common')'"/>
<ProjectReference Include="../../../Common/Common.csproj" Condition="Exists('../../../Common')'"/>
</ItemGroup>
推荐阅读
- wicket - 识别检票口中的浏览器关闭
- php - 旅行顾问 Axesso Api
- spring - Spring Security 方法安全性不起作用:PreAuthorize 允许所有用户而不是受限用户
- java - Gradle 插件中的嵌套扩展
- r - 如何使用 R 中的 read_xlsx() 函数指定非常具体的范围
- python - 如何旋转数据框但将重复项保留为重复项?
- html - 如何使用 HTML 添加按钮?
- javascript - 为什么类从 classList 中删除,而不是从目标事件本身?
- linux - 总线主控需要哪些内核标志和 PCIe 设置
- python - 如何在循环内显示图像 - Kivy