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

时间:2015-04-06 12:57:15

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

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

Visual Studio 2013 ClickOnce prerequisite window

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

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

1 个答案:

答案 0 :(得分:7)

您可以通过黑客攻击项目文件并复制某些文件来实现此目的。下面的示例是在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
  3. 此时,您可以打开解决方案并发布解决方案。当用户安装您的应用程序时,将要求他们也安装C ++运行时库。如果您的用户已经安装了应用程序,他们将需要重新安装,否则他们不会得到安装C ++运行时库的问题。

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