【问题标题】:How to correctly configure dependencies in Visual Studio - .NET如何在 Visual Studio - .NET 中正确配置依赖项
【发布时间】:2017-03-15 18:50:29
【问题描述】:

我在工作中遇到了一个奇怪的情况,我在多个项目中使用同一个库,但不是以标准方式。

假设我们有一个名为“MainProject”的主项目,不出所料。
我们还有一个名为“A”的共享库和另一个名为“B”的库。
假设“B”是一个广泛的实用程序库,其中包含很多东西,并且被库“A”“MainProject”使用。

所有这些项目/库都将 Git 作为其 VCS,并配置有子模块:

主项目:

  • B库子模块
  • 库 A
    • B库子模块

现在在尝试重建“MainProject”的解决方案时出现问题。
Visual Studio 输出错误:

找不到错误 1 ​​元数据文件“LibraryA_Path\LibraryB.dll”

搜索这个问题后,我发现有些东西没有按照我的预期构建。
没错——“A”没有构建它引用的“B”,可能是因为它嵌套得太深了。

然后我尝试将“A”的引用显式设置为“MainProject”的“B”,这解决了构建问题,但强制更改库的 Git 工作树,这意味着对该库的任何更新都会强制我重新做这个手动引用的过程。

那么配置此类项目的正确方法是什么?我可以尝试任何事情,因为我可以完全控制所有项目和库 - 在代码和 Git 中。

【问题讨论】:

    标签: c# git visual-studio dependencies git-submodules


    【解决方案1】:

    我不确定我是否理解正确,但您是否引用了由 Library B 项目构建的 *.dll?如果是这种情况,请将其替换为库 B 项目中的项目引用。然后,Visual Studio 会确保首先构建引用的项目。

    【讨论】:

    • 很遗憾没有,我确实参考了项目本身。
    • 所以项目像这样引用它们? MainProject -> 库 B 和 MainProject -> 库 A -> 库 B?图书馆 B 是否有图书馆 A 的参考资料?您能想到的任何其他环引用可能会阻止 Visual Studio 确定正确的构建顺序?
    • 是的,你没看错——这正是我的项目订单。但是,没有环或循环引用,通过查看项目的构建顺序,它实际上看起来不错。
    • 如果您按照正确的顺序自己构建项目,是否有效?
    • 对不起,我迟到了 - 对于你的问题,不,它没有。但是,我尝试在一个新的空项目上创建完全相同的配置,没有任何 Git 乱七八糟,它就像魅力一样工作。也许从头开始创建一个新的解决方案会解决这个问题。还没有机会尝试这个。
    猜你喜欢
    • 1970-01-01
    • 2020-03-15
    • 2012-12-14
    • 2010-09-12
    • 1970-01-01
    • 2010-10-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多