安装 .NET Framework 4.5 后,Visual Studio 2010 安装项目依赖于 .NET Framework

本文可帮助你解决以下问题:安装 Microsoft .NET 4.5(也许通过 VS 2012 安装)会导致 Visual Studio 2010 安装项目依赖于 .NET Framework。

原始产品版本: Visual Studio Premium 2010、Visual Studio Professional 2010、Visual Studio Ultimate 2010
原始 KB 数: 2735477

现象

你有一个 Visual Studio 2010 项目,该项目为本机 Visual C++ (VC++) 应用程序创建安装程序。 应用程序不需要安装 .NET Framework。 安装 .NET 4.5(或安装 .NET 4.5 的 Visual Studio 2012)后,你会看到 VS 2010 安装项目现在依赖于 .NET Framework。

原因

托管程序集被错误地添加到本机项目的引用列表中,导致本机项目依赖于 .NET Framework。

决议

对于 VC++ 项目,该 AddAdditionalExplicitAssemblyReferences 属性需要设置为 false 。 实现此目的的一种直接方法是编辑.vcxproj文件以执行此操作。 在编辑.vcxproj之前,请确保未在任何 Visual Studio 实例中打开该项目。 使用可扩展标记语言(XML)或文本编辑器(如 Visual Studio 中的语言),可以看到.vcxproj文件开始类似于以下示例:

<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
    <ItemGroup Label="ProjectConfigurations">

ItemGroup 标记之前,你将添加一个 PropertyGroup 修改该属性,因此上述代码将插入三行:

<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
    <PropertyGroup>
        <AddAdditionalExplicitAssemblyReferences>false
        </AddAdditionalExplicitAssemblyReferences>
    </PropertyGroup>
    <ItemGroup Label="ProjectConfigurations">

此外,在安装项目中,打开启动条件编辑器并删除Microsoft .NET 启动条件。

更改完成后,需要重新生成安装项目。

如果有多个需要此更改的 VC++ 项目,请参阅 “如何:在多个项目文件中使用相同的目标”。