VC++ 2012 Runtime Bootstrapper 包在 Visual Studio 2013 中在哪里?

Where is the VC++ 2012 Runtime Bootstrapper package in Visual Studio 2013?

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

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

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

您可以通过破解您的项目文件并复制一些文件来完成此操作。下面的示例是在 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 Studio2013使用的文件夹: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 2013 之外,您只有在安装 Visual Studio 2012 时才会获得此文件夹。如果您知道在哪里可以下载文件而无需安装 Visual Studio 2012,请随时编辑此问题.