【问题标题】:Build C# Projects and their dependencies构建 C# 项目及其依赖项
【发布时间】:2009-10-01 20:03:27
【问题描述】:

在 VS2005 中,我有几个相互依赖的 C# 项目。

如果项目 A 依赖于 B(例如引用它),那么我希望 B 在我构建 A 时构建,假设 B 自上次构建以来已经以某种方式发生了变化。 VC 项目就是这样,但由于某种原因,它似乎不适用于 C# 项目。如果我清理 B 然后构建 A 它只会告诉我它找不到 B...

有什么想法吗?

【问题讨论】:

    标签: c# .net visual-studio-2005


    【解决方案1】:

    如果您右键单击您的 Visual Studio 解决方案并选择“项目构建顺序”,您可以验证这些单个项目的构建顺序。还要确保您没有在“发布”版本中引用“调试”DLL,反之亦然。

    【讨论】:

    • 构建顺序没问题。正如我所说:A 引用 B,它在依赖项窗口和构建顺序中显示。如何在发布版本中引用调试版本?引用在项目之间...
    【解决方案2】:

    您需要构建实际的解决方案,而不是单独构建项目。

    【讨论】:

    • 不是一个选项,因为该解决方案还包含许多其他项目,其中一些我现在不想构建。
    【解决方案3】:

    解决方案可让您定义项目之间的依赖关系。如果你使用它,它应该会自动工作。通常依赖关系也是自动设置的。您可能添加了对程序集的引用,而不是项目。观看“添加参考”对话框中的“项目”选项卡。

    【讨论】:

    • 不。引用是对项目的,并且依赖项在那里。但它仍然没有构建所需的项目。
    【解决方案4】:

    如果您将所有项目添加到同一个解决方案并设置它们之间的依赖关系,那么当您在“较低”项目之一中更改某些内容时,Visual Studio 应该能够计算出正确的顺序并构建需要构建的所有内容.

    在你的情况下,它会知道它必须在构建 A 之前重建 B。

    【讨论】:

      【解决方案5】:

      覆盖您的 csproj 中的目标 AfterResolveReferences。然后使用项目@(NonVCProjectReference) 列出每个项目的路径并构建它们。 我建议你阅读MSBuild documentation

      【讨论】:

        猜你喜欢
        • 2011-01-18
        • 2015-04-30
        • 2013-01-30
        • 2012-01-15
        • 2020-07-24
        • 2021-12-25
        • 2013-04-30
        • 2014-12-05
        • 2014-03-19
        相关资源
        最近更新 更多