如何实现对Visual Studio 2010的库管理支持

作者:jcmp      发布时间:2021-05-01      浏览量:0
概述 Vcpkg使用起来确实

概述

Vcpkg使用起来确实比较方便,基本上是免工程配置,但是现在只支持Visual Studio 2015及以上版本,那么,是否有可能支持Visual Studio 2010呢?或者说支持各种Visual Studio版本?

局限从何而来

之前讲过,Vcpkg能够整合到Visual Studio 2015上是因为有MSBuild扩展点可以导入配置,扩展点在:

$(MSBUILDLOCATION)/Microsoft.Cpp/v4.0/V140/ImportBefore/Default/

那么,如果能够找到Visual Studio 2010对应的MSBuild扩展点,就可以实现对应的库管理器。

Visual Studio 2010的扩展点

任意打开一个Visual Studio 2010的工程,在工程配置页签打开宏,输入 custom ,即可看到:

也就是说,Visual Studio 2010的MSBuild也是支持扩展的,具体位置在:

C:\Program Files (x86)\MSBuild\v4.0\

MicrosoftCommonTargets 之前和之后都可以插入对应的 .Targets

支持Visual Studio 2010库的方法

延伸

如果不需要全局库管理,仅仅是针对于对应的sln或者vcxproj,从上述扩展思路延伸来看,可以实现局部库管理:

<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">    <Target Name="Generate By pkgUser" AfterTargets="AfterBuild">        <Message Text="*** author:liff.engineer@gmail.com ***" Importance="high"/>    </Target>    <Import Condition="Exists('$(MSBuildThisFileDirectory)..\..\config\librarys.targets')" Project="$(MSBuildThisFileDirectory)..\..\config\librarys.targets"/></Project>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">  <Import Project="$(SolutionPath).targets" Condition="Exists('$(SolutionPath).targets')" /></Project>

通过上述步骤即可完成面向解决方案的库管理及配置。