我有一个通过ClickOnce部署的.NET 4.5.2应用程序。它使用Magick.NET库,它需要Visual C ++ Redistributable for Visual Studio 2012.我已经尝试使用2013包,但它仍然需要2012版本才能工作。不幸的是,Visual Studio 2013中可能的先决条件下列出的唯一版本是2013版本。其他版本无处可寻:
如何在Visual Studio 2013 中使用ClickOnce应用程序包含Visual C ++ 2012 运行时库?
编辑:对于另一个版本的Visual Studio似乎有一个very similar question很少受到关注。
答案 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 ++运行时库的警告。要解决此问题,您需要复制一些文件。
此时,您可以打开解决方案并发布解决方案。当用户安装您的应用程序时,将要求他们也安装C ++运行时库。如果您的用户已经安装了应用程序,他们将需要重新安装,否则他们不会得到安装C ++运行时库的问题。
您的系统上可能没有 C:\ Program Files(x86)\ Microsoft SDKs \ Windows \ v8.0A \ Bootstrapper \ Packages 文件夹。我认为除Visual Studio 2013之外安装Visual Studio 2012时,只能获取此文件夹。如果您知道在哪里可以下载文件而无需安装Visual Studio 2012,请随时编辑此问题。