如何在Visual Studio 2022单解决方案中跨项目共享库文件与包含文件夹?
在VS解决方案中共享外部库的几种实用方法
方法一:用解决方案级属性表统一管理
这是最推荐的方式,一次配置所有项目复用:
- 在解决方案根目录建个专门放外部库的文件夹,比如
SharedExternalLibs,把库的头文件、静态/动态库文件都放进去(如果已经有固定路径,也可以直接用那个路径) - 右键解决方案 → 添加 → 新建项 → 选「属性表(.props)」,命名比如
CommonLibs.props - 打开这个.props文件,添加库的包含目录、库目录和链接依赖,示例代码如下:
<?xml version="1.0" encoding="utf-8"?> <Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> <PropertyGroup> <!-- 头文件目录,把你的库路径替换进去 --> <IncludePath>$(SolutionDir)SharedExternalLibs\include;$(IncludePath)</IncludePath> <!-- 库文件目录 --> <LibraryPath>$(SolutionDir)SharedExternalLibs\lib;$(LibraryPath)</LibraryPath> </PropertyGroup> <ItemDefinitionGroup> <Link> <!-- 要链接的库文件名,多个用分号分隔 --> <AdditionalDependencies>libcurl.lib;opencv_world455.lib;%(AdditionalDependencies)</AdditionalDependencies> </Link> </ItemDefinitionGroup> </Project>
- 给每个项目导入这个属性表:右键项目 → 属性 → 通用属性 → 导入属性表 → 浏览选中刚才的
.props文件 - 后续新建项目时,只要重复最后一步导入属性表,就能自动继承所有库配置,不用再手动添加
方法二:NuGet包级别的解决方案共享
如果你的外部库是NuGet包:
- 右键解决方案 → 管理解决方案的NuGet程序包
- 切换到「浏览」标签,找到需要的包,在右侧勾选所有要共享该包的项目(比如项目A和B),点击安装
- 之后新建项目时,同样在解决方案级NuGet管理里勾选新项目安装,或者直接从已配置的项目复制包引用到新项目的
.vcxproj里
方法三:相对路径+配置复制
不想用属性表的话,可以用相对路径统一配置后复制:
- 把外部库放到解决方案根目录下的固定文件夹,比如
ExternalLibs - 打开项目A的属性,在「VC++目录」里,把包含目录设为
$(SolutionDir)ExternalLibs\include,库目录设为$(SolutionDir)ExternalLibs\lib,再在链接器输入里添加需要的库文件 - 找到项目A的
.vcxproj文件,把里面关于包含目录、库目录、链接依赖的配置段复制出来,粘贴到项目B的.vcxproj对应位置 - 后续新项目直接复用这段复制的配置即可
内容的提问来源于stack exchange,提问作者Tekarou
相关产品推荐
相关产品推荐

