【问题标题】:Where is the VC++ 2012 Runtime Bootstrapper package in Visual Studio 2013?Visual Studio 2013 中的 VC++ 2012 运行时引导程序包在哪里?
【发布时间】:2015-05-01 15:50:26
【问题描述】:

我有一个通过 ClickOnce 部署的 .NET 4.5.2 应用程序。它使用 Magick.NET 库,它需要 Visual C++ Redistributable for Visual Studio 2012。我已经尝试使用 2013 包,但它仍然需要 2012 版本才能工作。不幸的是,Visual Studio 2013 中可能的先决条件下列出的唯一版本是 2013 版本。其他版本找不到了:

如何在 Visual Studio 2013 中将 Visual C++ 2012 运行时库包含在 ClickOnce 应用中?

编辑:似乎有一个 very similar question 表示另一个版本的 Visual Studio,但很少受到关注。

【问题讨论】:

  • 指出它们存在于您没有的 VS 版本中,这太明显了。无论如何您都不需要它们,只需将您机器上的 DLL 复制到与您的 EXE 相同的目录中即可。您需要 msvcr110.dll 和可能的 msvcp110.dll,在您的 Windows 目录中找到它们(64 位版本为 system32,32 位版本为 syswow64)。

标签: .net visual-studio-2013 clickonce visual-c++-2012 .net-4.5.2


【解决方案1】:

您可以通过破解您的项目文件并复制一些文件来完成此操作。下面的示例用于在 Visual Studio 2013 中使用 Visual C++ 2012 运行时库。如果您使用不同版本的 Visual Studio 或想要不同版本的 Visual C++ 运行时库,则必须更改一些版本号。

首先将以下内容添加到您的项目文件中:

<ItemGroup>
  <BootstrapperPackage Include="Microsoft.Visual.C++.11.0.x64">
    <Visible>False</Visible>
    <ProductName>Visual C++ 2012 Runtime Libraries %28x64%29</ProductName>
    <Install>true</Install>
  </BootstrapperPackage>
</ItemGroup>

以上示例适用于 64 位版本的 Visual C++ 2012 运行时库。如果要使用 32 位版本,则应将 x64 替换为 x86。如果您想使用不同版本的 C++ 库,则必须更改 11.0 版本号。如果此时打开项目并转到先决条件,您会注意到 Visual Studio 2013 找不到 Visual C++ 运行时库的警告。要解决此问题,您需要复制一些文件。

  1. 转到以下文件夹:C:\Program Files (x86)\Microsoft SDKs\Windows\v8.0A\Bootstrapper\Packages。如果您需要不同版本的 C++ 运行时库,您应该更改 v8.0a 版本号。
  2. 将文件夹 vcredist_x86 复制到 Visual Studio 2013 使用的文件夹:C:\Program Files (x86)\Microsoft SDKs\Windows\v8.1A\Bootstrapper\Packages。确保使用不同的名称以避免覆盖 2013 库。我用的是 vcredist_x64.2012

此时您可以打开您的解决方案并发布您的解决方案。当用户安装您的应用程序时,他们将被要求安装 C++ 运行时库。如果您的用户已经安装了应用程序,他们将需要重新安装,否则他们将不会收到安装 C++ 运行时库的问题。

您的系统上可能没有 C:\Program Files (x86)\Microsoft SDKs\Windows\v8.0A\Bootstrapper\Packages 文件夹。我认为您只有在安装 Visual Studio 2012 和 Visual Studio 2013 时才会获得此文件夹。如果您知道可以在哪里下载文件而无需安装 Visual Studio 2012,请随时编辑此问题。

【讨论】:

    猜你喜欢
    • 2017-11-14
    • 1970-01-01
    • 2012-12-03
    • 1970-01-01
    • 1970-01-01
    • 2012-10-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多