Visual Studio 2012中的Visual C ++运行时可再发行组件2010

时间:2014-01-28 20:30:42

标签: visual-studio-2012 clickonce

我需要能够使用ClickOnce在Visual Studio 2012中分发Visual C ++ Runtime Distributables 2010。如何让2010 C ++引导程序出现在VS 2012先决条件中? 2012年的引导程序已经存在。我可以同时拥有两个吗?

1 个答案:

答案 0 :(得分: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
  3. 此时,您可以打开解决方案并发布解决方案。当用户安装您的应用程序时,将要求他们也安装C ++运行时库。如果您的用户已安装该应用程序,则需要重新安装,否则他们将无法安装C ++运行时库。

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