我有一个 C# 项目 MyProject.csproj,它位于具有以下文件夹结构并引用 Dependency.dll 的解决方案中:
- 库
- 依赖.dll
- 项目
- 我的项目
- 我的项目.csproj
- 我的项目
因此,在 MyProject.csproj 中对 Dependency.dll 的引用具有如下所示的 HintPath:
..\..\Libs\Dependency.dll
现在我想在不同项目结构中的不同解决方案中使用 MyProject 作为源,无需修改。这是因为 MyProject 位于它自己的源代码控制存储库中,并且我在不同的解决方案中使用它作为 Mercurial 子存储库/Git 子模块。(问题可能在源代码控制级别上得到解决......)这样一个不同的解决方案看起来像这样:
- 库
- 依赖.dll
- 我的项目
- 我的项目.csproj
请注意,MyProject 文件夹现在与 Libs 文件夹处于同一级别。因此,原来的 HintPath 现在是无效的(因为它应该是..\Libs\Dependency.dll
)并且我得到构建错误。
有没有办法解决这个问题,但在不同的解决方案中保持相同的 csproj?
我发现以下可能的解决方案很棒,但需要修改 csproj。这在我的情况下是最有可能的,但有时有一些外部组件我不能请求这样的修改,所以如果可能的话,我会寻找一些解决方案级别的覆盖。
- 基于文件存在检查的条件提示路径:.csproj 程序集的多个提示路径这可能适用于大多数情况,解决方案结构在这里是众所周知的。
- 指定多个程序集搜索位置:https ://stackoverflow.com/a/15816779/220230
谢谢你。