2014-01-28 119 views
2

我需要能够使用ClickOnce在Visual Studio 2012中分发Visual C++ Runtime Distributables 2010。我如何让2010 C++引导程序出现在VS 2012先决条件中? 2012年的引导程序已经在那里。我可以兼得吗?Visual Studio 2012中的Visual C++ Runtime Distributable 2010

+0

我正在使用msvcr100 .dll和msvcp100.dll仅因为Leadtools。我试图让他们进入ClickOnce安装,但你怎么做? – DarrenD

+0

您是否曾经为此找到过解决方案 – Julien

+0

我不得不手动添加dll。 – DarrenD

回答

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> 

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

  1. 转到以下文件夹:C:\ Program Files文件(x86)的\微软的SDK \的Windows \ v8.0A \引导程序\软件包。如果您需要不同版本的C++运行时库,则应更改v8.0a版本号。
  2. 将文件夹复制vcredist_x86到的Visual Studio 2013采用了文件夹:C:\ Program Files文件(x86)的\微软的SDK \的Windows \ v8.1A \引导程序\软件包。确保使用不同的名称来避免覆盖2013年的图书馆。我用vcredist_x64.2012

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

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

相关问题