Visual Studio proyectos de instalación de 2010 dependen de .NET Framework después de instalar .NET Framework 4.5

Este artículo le ayuda a resolver un problema por el que la instalación de Microsoft .NET 4.5 (quizás a través de la instalación de VS 2012) provoca que un proyecto de instalación de Visual Studio 2010 tenga una dependencia en el .NET Framework.

Versión original del producto:   Visual Studio Premium 2010, Visual Studio Professional 2010, Visual Studio Ultimate 2010
Número de KB original:   2735477

Síntomas

Tiene un proyecto de Visual Studio 2010 que crea un instalador para una aplicación nativa de Visual C++ (VC++). La aplicación no requiere que se instale el .NET Framework. Después de instalar .NET 4.5 (o Visual Studio 2012, que instala .NET 4.5), observará que el proyecto de instalación de VS 2010 ahora tiene una dependencia en el .NET Framework.

Causa

Un ensamblado administrado se agrega incorrectamente a la lista de referencias para el proyecto nativo, lo que hace que el proyecto nativo tenga una dependencia en el .NET Framework.

Solución

La AddAdditionalExplicitAssemblyReferences propiedad debe establecerse en false para el proyecto de VC++. Una manera directa de hacerlo sería editar el archivo .vcxproj para hacerlo. Antes de editar .vcxproj, asegúrese de que no tiene el proyecto abierto en ninguna instancia de Visual Studio. Con un lenguaje de marcado extensible (XML) o un editor de texto (como el de Visual Studio), observará que el archivo .vcxproj comienza algo parecido a este ejemplo:

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

Antes de la ItemGroup etiqueta, agregará un PropertyGroup que modifica esa propiedad, por lo que la anterior tendrá tres líneas insertadas:

<?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">

Además, en el proyecto de instalación, abra el editor Condición de inicio y quite la condición de inicio de Microsoft .NET.

Una vez realizados los cambios, tendrá que volver a compilar el proyecto de instalación.

Si tiene varios proyectos de VC++ para los que se necesitaría este cambio, consulte How to: Use the Same Target in Multiple Project Files (Cómo: Usar el mismo destino en varios archivos Project).