【问题标题】:How to upgrade a solution and project files from the command line如何从命令行升级解决方案和项目文件
【发布时间】:2015-09-07 12:12:28
【问题描述】:

我正在使用 Microsoft 的 Visual Studio 2015 Community Edition(和 here)测试免费和开源软件,以确保与编译器和工具的兼容性。 30 天试用已过期,所以我需要从命令行工作,因为在告诉我试用已过期后 IDE 存在:

当我尝试从命令行运行 msbuild 时,我得到了几个顶级错误:

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)

上述问题是由于较低级别的 (Visual Studio 2008) 解决方案和项目文件造成的。

官方文档位于How to: Upgrade Visual C++ Projects to Visual Studio 2015,但该页面并未讨论从命令行升级解决方案。

根据Visual Studio 2010 C++ Project Upgrade Guide 的VC++ 团队博客,VCUpgrade.exe 位于$(VSInstallDir)\common7\Tools。但是:"... [VCUpgrade.exe is only] 适用于升级只有一个项目的应用程序,因为它不能将解决方案文件作为输入并将解决方案信息解析到项目文件中。"

我还在Building Applications that Use the Windows SDK 找到将项目升级到 Visual C++ 2010。它告诉我使用devenv.exe /upgrade。当我按照它的说明进行操作时,结果如下。没有错误,但没有进行任何转换(也没有创建日志文件)。

!! 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

尝试使用 VCupgrade.exe(即使根据 Microsoft 文档它是一个不完整的解决方案)会导致:

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.

如何将解决方案和项目文件从早期版本的 Visual Studio 转换为 Visual Studio 2015?


有一些类似的问题,但它们没有涵盖命令行错误,例如 “无法初始化 VCProjectEngine” 和 [unexplained] 即将到期的试用版。例如,请参阅Upgrade a visual studio solution on the command line with visual studio express


幽默地(以一种病态的方式),Microsoft 将 Visual Studio 2015 Community 称为免费开发工具,并且在Overview of Visual Studio 2015 ProductsVisual Studio Community 页面上没有说明其试用期即将到期。事实上,微软告诉我们其功能齐全且免费的开源项目(即本项目)。

我猜微软撒了谎,律师把它埋在服务条款的某个地方。更幽默的是,服务条款中也没有提到或提及“试用”或“过期”。请参阅 Microsoft 的 Visual Studio Community license terms

不那么幽默,在查看了 Microsoft 的营销文献后,我拒绝了 Visual Studio Professional 的副本,因为我认为社区版可以满足项目的需求。我希望这不会是 500 美元的错误......

【问题讨论】:

  • 你检查过这个吗:blogs.msdn.com/b/visualstudio/archive/2015/08/07/… "这里的试用是指在你必须登录才能完全解锁 IDE 之前你可以使用社区版的期限。"
  • 谢谢西蒙。我什至不知道存在常见问题解答(并且在某人的博客上,但如此)。据我所知,微软在事后改变了条款。 FAQ 没有讨论细节,例如适用于 IDE 和 VCupgrade 的试用版,还是适用于所有内容,例如编译器和链接器。
  • 从法律上讲,我想整个软件包都受许可条款的约束。从技术上讲,它具体取决于 exe 等。但大多数工具都很难(并且每个新版本都变得越来越难)在没有 IDE 的情况下使用 - 从技术上讲,IDE 绑定在在线帐户上。
  • 我使用社区版没有试用过期问题大约 2 个月。您确定您的安装是因为 CE 而过期的,而不仅仅是过期的登录令牌或 VS 2015 Ultimate 或其他任何过期试用版中的一些旧注册表记录?
  • Alexey - 你猜和我的一样好(或者我的和你的一样好)。我也找不到日志文件。以下是相关问题:Where are Developer Studio logs written?.

标签: visual-studio visual-c++ msbuild visual-studio-2015 upgrade


【解决方案1】:

似乎最好的(也是最受支持的)选择可能只是sign-in with a Microsoft account,这样您就可以使用免费的社区版许可证。这将允许您打开开发环境并使用预期/经过最充分测试的升级过程升级解决方案。

【讨论】:

  • 问题是微软将我的帐户锁定。几年前,当微软更改条款并要求 Hotmail 帐户提供更多信息(如电话号码)时,它被锁定了。我无法找到让 Microsoft 解锁帐户的支持途径。你得到你所支付的所有这些“免费”的东西。它们花费的时间、金钱和精力比您想象的要多……
  • 我真正喜欢的选项是“免费是真的免费”之一(不是指啤酒)。为什么让它比它需要的更复杂?这避免了公司及其律师造成的所有这些混乱。但这只是我的bike shedding
  • @jww, "Microsoft 已锁定我的帐户" - 您是否有任何具体原因不创建新帐户(就像互联网上的其他人一样) ?例如使用您的 ********@gmail.com 地址或新创建的地址?
【解决方案2】:

这并不能回答您的所有问题,因为我认为需要解决第一个问题以进行测试,看看您是否需要答案来升级您的项目。

随着时间的推移,我在 VS 中遇到过类似的错误消息。请参阅此答案-Visual Studio 2013 Community weird errors 虽然这讨论了 VS2013,但适用相同的原则。

Visual Studio Community Edition is free.(很像 MS 提供的快速版本)

These are the license rights you have.

微软软件许可条款

2015 年微软视觉工作室社区

这些许可条款是 Microsoft Corporation(或 根据您居住的地方、其关联公司之一)和您。他们适用于 上面提到的软件。这些条款也适用于任何 Microsoft 软件的服务或更新,除非这些服务或更新 不同的术语。

如果您遵守这些许可条款,您将享有以下权利。

安装和使用权利。
个人许可证。
如果你是一个 个人在您自己的应用程序上工作以出售或为任何其他 目的,您可以使用该软件来开发和测试那些 应用程序。

我建议卸载 VS 和任何相关的依赖项。从我提供的链接之一下载 VS2015 CE,然后从该 exe 重新安装。允许 VS 配置安装及其依赖项。

试用期到期,这让我觉得你没有下载 CE。这就是为什么我建议重新下载。

另外,如果您无法通过打开 VS 的快捷方式来运行 VS,您将无法从命令行运行它。

启动并运行后,看看您的升级进展如何。另外,请记住,如果您对缺少依赖项有任何错误,请下载它们。

希望这对某些人有所帮助,我看到这即将到期而您没有答案。

【讨论】:

  • 我不清楚这如何或为什么相关。我截取了 UI 的屏幕截图,告诉我它的社区版,并且它已过期。
  • 我遇到了同样的问题...使用专业版,以为是预激活的,但没有。输入密钥使 devenv /upgrade 工作。谢谢!
【解决方案3】:

您可以使用 devenv.exe 命令进行升级:只需使用“/upgrade”开关调用它。 devenv.exe 的位置由 VS 2010 命令提示窗口中的 DevEnvDir 环境变量指定。

命令:
a) 升级解决方案文件:devenv.exe /upgrade ;或

b) 升级项目文件:devenv.exe /upgrade .

参考:https://devblogs.microsoft.com/cppblog/to-the-command-line-enthusiasts-some-quick-know-hows-for-upgrading-to-vs-2010/

【讨论】:

    猜你喜欢
    • 2014-04-17
    • 2010-12-11
    • 2018-12-30
    • 2011-07-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多