我有一组像这样组织的解决方案......
Master Solution
- Proj A
- Proj B
- Proj X
- Proj Y
SolutionAB
- Proj A
- Proj B
SolutionXY
- Proj X
- Proj Y
依赖
Proj A & B => Proj X & Y
我需要的是让MasterSolution查看本地项目引用,SolutionAB查看相同dll的完全arbritrary位置。我可以对.proj
文件进行任何更改,但我的移动项目能力有限。这些只是我必须要处理的限制。
答案 0 :(得分:3)
您可以使用导入的属性文件执行此操作。由于引用位于项目文件中,因此您可以移动它们,或将它们使用的属性移动到单独的.props文件中。
在单独的.props文件中
<PropertyGroup>
<SomeAssemblyFolder
Condition="'$(SolutionName)' == 'Master'">PathTo/Master</SomeAssemblyFolder>
<SomeAssemblyFolder
Condition="'$(SolutionName)' == 'AB'">PathTo/AB</SomeAssemblyFolder>
</PropertyGroup>
在项目文件中
<Reference Include="SomeAssembly">
<HintPath>$(SomeAssemblyFolder)\SomeAssembly.dll</HintPath>
</Reference>
我想如果你愿意,你可以在每个项目文件中复制属性定义,但我会将其移动到导入。如果需要从命令行或其他解决方案文件构建,请记住提供合理的默认值,或在命令行上提供区别属性。
答案 1 :(得分:0)
库引用存储在项目文件中。由于项目是在解决方案之间共享的,我认为没有一种简单的方法可以做到这一点。
项目无法始终查看文件的任意位置?