代码之家  ›  专栏  ›  技术社区  ›  Sion Sheevok

如何使Visual Studio 2010项目依赖关系特定于配置?

  •  4
  • Sion Sheevok  · 技术社区  · 14 年前

    这个可能有点奇怪。在Visual Studio 2010中,我有三个C++项目的解决方案。两个库和一个可执行应用程序。两种配置。在一种配置中,我需要可执行应用程序对一个库具有项目依赖关系,在另一种配置中,我需要可执行应用程序对另一个库具有项目依赖关系。

    在第一个库中有一个Direct3D9实现,在第二个库中有一个OpenGL实现。第三个项目是一个测试工具,对两者使用相同的接口,唯一的区别是它链接到哪个库。测试线束项目中存在两种配置,每种配置都有一种配置。我无法将测试工具项目设置为基于活动配置单独依赖于每个实现库。

    如何使项目依赖项特定于配置?

    3 回复  |  直到 14 年前
        1
  •  3
  •   Ted Elliott    14 年前

    C++项目格式MSBug是什么?如果是这样的话,你应该可以在参考上加上一个条件。引用两个项目,然后编辑项目文件并在每个项目上添加条件。这是它在C项目中的工作方式,不确定C++是否相同:

    <ProjectReference Include="..\DirectXLib\DirectXLib.csproj" Condition=" '$(Configuration)' == 'DirectX' ">
      <Project>{99999-9999-9999-9999-99999999999}</Project>
      <Name>DirectXLib</Name>
    </ProjectReference>
    <ProjectReference Include="..\OpenGLLib\OpenGLLib.csproj" Condition=" '$(Configuration)' == 'OpenGL' ">
      <Project>{99999-9999-9999-9999-99999999999}</Project>
      <Name>OpenGLLib</Name>
    </ProjectReference>
    
        2
  •  0
  •   yasouser    14 年前

    我认为configuration manager的目的就是满足您的要求,不是吗?

    在解决方案级别,可以指定要生成的配置,对于每个配置,可以指定要生成的项目和顺序。在每个项目的设置中,您可以指定要包含哪些库以及要执行的一系列其他操作。

        3
  •  0
  •   Klamer Schutte    10 年前

    从IDE看来,有一个诀窍是可行的:

    • 让两个库都有一个未使用的配置;

    • 将“未使用”配置中库的配置类型(在“公用属性:常规:项目默认值”中)设置为“应用程序(.exe)”。