0

我建立从命令行许多Visual Studio项目(的.sln解决方案文件)有:升级从Visual Studio 2010至2013年的解决方案使用命令行

call "C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\vcvarsall.bat" 

for /r %%X in (/*.sln) do (
msbuild %%X /p:configuration=release /p:platform=win32 /nologo /noconsolelogger /fileLogger /v:quiet /flp:logfile=build_errors.log;errorsonly;append 

不幸的是,他们都是用MSVS2010创建的。因此,我得到的错误:

C:\ Program Files文件(x86)的\的MSBuild \ Microsoft.Cpp \ V4.0 \ V120 \ Microsoft.Cpp.Platform.targets(64,5):错误MSB8020:构建无法找到Visual Studio 2010的工具(平台工具集='v100')。要使用v100构建工具构建,请安装Visual Studio 2010构建工具。或者,可以通过选择“项目”菜单或右键单击解决方案,然后选择“升级解决方案...”升级到当前的Visual Studio工具。

由于我有20或30个.sln文件,我不想打开每一个和升级解决方案等(我甚至没有找到完全如此处提到的!)。

是否有命令行解决方案将其全部升级到MSVS2013?

回答

0

如果这是唯一的问题,您可以重定向项目以使用VS2013工具集而不是VS2010中的工具集。您可以使用您选择的语言编写简单的脚本(或者手动执行),以迭代所有项目文件并将PlatformToolset属性的值替换为<PlatformToolset>Visual Studio 2013 (v120)</PlatformToolset>。或者,您可以从SDK下载并安装VS2010构建工具 - https://www.microsoft.com/en-us/download/details.aspx?id=8279

+0

谢谢。我还没有在.sln或.vcxproj文件中找到'',它应该在哪里? – Basj

+0

它应该在.vcxproj中。不确定它的具体值,可能是'< PlatformToolset> v100'。如果不存在,可能需要添加它。请参阅此主题:https://social.msdn.microsoft.com/Forums/vstudio/en-US/e7331f38-19dd-4efc- 9525-12729d0b9521 /如何到设置的默认-platform-toolset?forum = vcgeneral – SomeWittyUsername

1

您可以通过devenv /upgrade命令升级解决方案及其所有项目文件。 (devenv.exe的是在VS安装路径(.. \ Common7 \ IDE)。

devenv SolutionFile | ProjectFile /upgrade 

要构建的解决方案/不升级项目,你可以指定Toolset参数(/ TV)。

msbuild %%X /p:configuration=release /p:platform=win32 /tv:12.0 
+0

谢谢!你能给一个命令行的例子,以供将来参考? 'devenv /升级mysolution.sln'就够了吗?关于'/ tv'参数,它会与msbuild? (一个例子会很棒) – Basj

+0

@Basj我更新了我的答案。 –

+0

'devenv'在VS2013 Express中不可用,它是'WDExpress.exe',但这不包括/升级,可悲...另一方面,'/电视:12.0'不适合我,我不知道为什么。 – Basj

相关问题