代码之家  ›  专栏  ›  技术社区  ›  Taylor Price

不使用项目依赖项的Visual Studio 2005项目生成顺序

  •  2
  • Taylor Price  · 技术社区  · 16 年前

    我问题的简短版本是,在不强制将一个项目设置为另一个项目的依赖关系的情况下,如何更改解决方案中项目的构建顺序?

    在我的解决方案中,我有两个项目:

    1.)用C语言编写的可执行文件
    2.)包含使用cutest框架的单元测试的静态库。

    我有4个构建配置:

    1.)debug-我只想让exe处于调试模式。静态lib项目未被选中,因此不会生成。
    2.)释放-我只想让exe处于释放模式。静态lib项目未被选中,因此不会生成。
    3.)使用单元测试进行调试-希望生成静态lib,然后生成exe,因为在本例中它依赖于lib。
    4.)通过单元测试发布-同上3,只是发布而已。

    因为可执行文件依赖于解决方案中没有的其他lib和dll,所以在链接器设置中,我将所有这些作为附加依赖项列出。在单元测试构建配置中,静态lib也包含在可执行文件的依赖项列表中。

    现在,麻烦来了。到目前为止,我发现更改构建顺序并确保静态lib在exe之前构建的唯一方法是右键单击解决方案并选择构建顺序。在那个对话框中,它说我必须使用依赖项选项卡来更改构建顺序。这是有道理的。但是,如果我将可执行文件标记为依赖于静态库,它会自动将静态库添加为可执行文件的链接器依赖项。这对于单元测试构建配置来说很好。但是,在非单元测试构建配置中,它尝试在静态库中链接,如果我在构建之前进行了清理,则该静态库已被删除,并且无法链接,因为我不在这些配置中构建它(在这些情况下,我也不希望它链接)。

    也就是说,有没有一种方法可以在不标记依赖项的情况下更改构建顺序?我想为单元测试配置设置构建顺序,以确保首先构建静态lib。

    3 回复  |  直到 16 年前
        1
  •  3
  •   rahularyansharma    16 年前

    可以禁用库依赖项的自动包含。

    在exe的属性页中:

    链接器->常规->链接库依赖项->否

    这允许您指定项目依赖项,从而在不链接静态库的情况下生成顺序。

        2
  •  1
  •   Dan    16 年前

    我想看看南特。可能可以构建一个Ant脚本来解决您的问题。

    http://nant.sourceforge.net

        3
  •  0
  •   Xavier Nodet    16 年前

    “每个配置依赖项”可能是一个答案。它将允许指定lib是可执行文件的依赖项,仅适用于有意义的配置。