如何让新的 Visual Studio C++ 项目知道现有的共享项目?
How to make a new Visual Studio C++ project aware of an existing shared project?
Visual Studio 中的新(呃)共享 C++ 项目模板比以前解决代码共享的方法更容易使用。将一个添加到您的解决方案就像“添加 -> 新项目 -> 共享项目项目”一样简单,瞧!该项目中的任何代码对所有现有项目都是可见的,就好像它存在于它们自己的根目录中一样。
不幸的是,有一个潜在的问题:如果您之后将新项目添加到您的解决方案,它们不会自动看到共享项目。 (不确定这是否适用于所有形式的 VS C++ 项目模板,但它肯定发生在我们使用的项目类型中。)
如果这是一个 C# 项目,我们可以只添加一个引用。但是在这种情况下,C++ 项目属性并没有提供这么简单的方法。
虽然 运行 链接器错误很有趣,但必须修改项目的几个依赖路径会破坏共享项目模板的全部目的。我到处搜索,但我根本找不到如何让新项目“看到”现有共享项目的解释。有解决此问题的简单方法吗?
碰巧,是一种快速简单的方法来解决这个问题。只需对项目文件进行一次更改。
打开新项目的 .vcxproj 文件(作为文本)并找到显示为 <ImportGroup Label="Shared">
的标签(对于新项目,此标签可能为空)。然后,只需像这样添加共享项目的路径:
转这个:
<ImportGroup Label="Shared">
</ImportGroup>
进入这个:
<ImportGroup Label="Shared">
<Import Project="some/project/path.vcxitems" Label="Shared" />
</ImportGroup>
这就是您需要做的一切!不要乱搞任何外部依赖路径或其他项目设置。就这一步。
Visual Studio 中的新(呃)共享 C++ 项目模板比以前解决代码共享的方法更容易使用。将一个添加到您的解决方案就像“添加 -> 新项目 -> 共享项目项目”一样简单,瞧!该项目中的任何代码对所有现有项目都是可见的,就好像它存在于它们自己的根目录中一样。
不幸的是,有一个潜在的问题:如果您之后将新项目添加到您的解决方案,它们不会自动看到共享项目。 (不确定这是否适用于所有形式的 VS C++ 项目模板,但它肯定发生在我们使用的项目类型中。)
如果这是一个 C# 项目,我们可以只添加一个引用。但是在这种情况下,C++ 项目属性并没有提供这么简单的方法。
虽然 运行 链接器错误很有趣,但必须修改项目的几个依赖路径会破坏共享项目模板的全部目的。我到处搜索,但我根本找不到如何让新项目“看到”现有共享项目的解释。有解决此问题的简单方法吗?
碰巧,是一种快速简单的方法来解决这个问题。只需对项目文件进行一次更改。
打开新项目的 .vcxproj 文件(作为文本)并找到显示为 <ImportGroup Label="Shared">
的标签(对于新项目,此标签可能为空)。然后,只需像这样添加共享项目的路径:
转这个:
<ImportGroup Label="Shared">
</ImportGroup>
进入这个:
<ImportGroup Label="Shared">
<Import Project="some/project/path.vcxitems" Label="Shared" />
</ImportGroup>
这就是您需要做的一切!不要乱搞任何外部依赖路径或其他项目设置。就这一步。