I am testing Free and Open Source Software using Microsoft's Visual Studio 2015 Community Edition (and here) to ensure compatibility with the compiler and tools. The 30 day trial has expired, so I need to work from the command line because the IDE exists after telling me the trial has expired:
When I try to run msbuild
from the command line, I get a couple of top level errors:
Test> msbuild cryptest.sln
Microsoft (R) Build Engine version 14.0.23107.0
Copyright (C) Microsoft Corporation. All rights reserved.
Building the projects in this solution one at a time. To enable parallel build,
please add the "/m" switch.
Build started 9/7/2015 7:58:54 AM.
Project "...\cryptest.sln" on node 1
(default targets).
ValidateSolutionConfiguration:
Building solution configuration "Debug|Win32".
MSBUILD : error MSB3428: Could not load the Visual C++ component "VCBuild.exe".
To fix this, 1) install the .NET Framework 2.0 SDK, 2) install Microsoft Visua
l Studio 2005 or 3) add the location of the component to the system path if it
is installed elsewhere. [...\cryptest.sln]
Done Building Project "...\cryptest.sln" (default targets) -- FAILED.
Build FAILED.
"...\cryptest.sln" (default target)
(1) ->
(cryptlib target) ->
MSBUILD : error MSB3428: Could not load the Visual C++ component "VCBuild.exe
". To fix this, 1) install the .NET Framework 2.0 SDK, 2) install Microsoft Vis
ual Studio 2005 or 3) add the location of the component to the system path if i
t is installed elsewhere. [...\cryptest.sln]
0 Warning(s)
1 Error(s)
The problems above are due to a down level (Visual Studio 2008) solution and project files.
The official docs are at How to: Upgrade Visual C++ Projects to Visual Studio 2015, but the page does not discuss a solution upgrade from the command line.
According to the VC++ Team Blog at Visual Studio 2010 C++ Project Upgrade Guide, there's a VCUpgrade.exe
located in $(VSInstallDir)\common7\Tools
. But: "... [VCUpgrade.exe is only] suitable for upgrading applications with only one project as it cannot take in solution file as input and parse solution information into project files."
I also found Upgrading Projects to Visual C++ 2010 at Building Applications that Use the Windows SDK. It tells me to use devenv.exe /upgrade
. When I follow its instructions, it results in the following. There were no errors, but nothing was converted (and no log file was created).
!! From VS2015 Developer Command Line Prompt
cryptopp-5.6.3>devenv.exe /upgrade
cryptopp-5.6.3>dir *.vcproj *.vcxproj
...
09/07/2015 10:36 AM 81,845 cryptdll.vcproj
09/07/2015 10:36 AM 40,168 cryptest.vcproj
09/07/2015 10:36 AM 205,529 cryptlib.vcproj
09/07/2015 10:36 AM 8,885 dlltest.vcproj
Attempting to use VCupgrade.exe
(even though its an incomplete solution according to the Microsoft docs) results in:
cryptopp-5.6.3>vcupgrade cryptest.vcproj
Microsoft (R) Visual C++ Project Convert Utility - Version 14.00.23107
Copyright (C) Microsoft Corporation. All rights reserved.
Failed to initialize the VCProjectEngine.
How do I convert a solution and project files from an earlier version of Visual Studio to Visual Studio 2015?
There's a few similar questions, but they don't cover the command line with errors like "Failed to initialize the VCProjectEngine" and the [unexplained] expiring trial. See, for example, Upgrade a visual studio solution on the command line with visual studio express.
Humorously (in a morbid sort of way), Microsoft calls Visual Studio 2015 Community a free dev tool, and does not state its an expiring trial at Overview of Visual Studio 2015 Products or Visual Studio Community pages. In fact, Microsoft tells us its fully featured and free for Open Source projects (which this project is).
I guess Microsoft lied and the lawyers buried it in the Terms of Service somewhere. More humorously, neither "trial" nor "expire" are called out or mentioned at the Terms of Service, either. See Microsoft's Visual Studio Community license terms.
Not so humorously, I declined a copy of Visual Studio Professional after reviewing Microsoft's marketing literature because I thought Community edition would meet the project's needs. I hope that does not turn out to be a $500 USD mistake...