我需要能够使用ClickOnce在Visual Studio 2012中分发Visual C ++ Runtime Distributables 2010。如何让2010 C ++引导程序出现在VS 2012先决条件中? 2012年的引导程序已经存在。我可以同时拥有两个吗?
答案 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 ++运行时库的警告。要解决此问题,您需要复制一些文件。
此时,您可以打开解决方案并发布解决方案。当用户安装您的应用程序时,将要求他们也安装C ++运行时库。如果您的用户已安装该应用程序,则需要重新安装,否则他们将无法安装C ++运行时库。
您的系统上可能没有 C:\ Program Files(x86)\ Microsoft SDKs \ Windows \ v8.0A \ Bootstrapper \ Packages 文件夹。我认为除Visual Studio 2013之外安装Visual Studio 2012时,只能获取此文件夹。如果您知道在哪里可以下载文件而无需安装Visual Studio 2012,请随时编辑此问题。