2010-05-10 25 views
13

Tengo un proyecto de 2010 que tiene como objetivo .NET v3.5. Inexplicablemente ya no puedo construir proyectos v3.5. El proyecto no tiene NINGUNA referencia agregada. Ni siquiera me deja agregar una referencia a System.Core ya que es agregado por el 'sistema de compilación'.Visual Studio 2010 ya no puede compilar .NET v3.5

CS1685

advertencia: El tipo predefinido 'System.Func' se define en varios ensamblados en el alias global; utilizando la definición de 'c: \ Windows \ Microsoft.NET \ Framework \ v4.0.30319 \ mscorlib.dll'

IFilter.cs (82,49): CS0433 error: El tipo 'System.Func' existe en ambos 'c: \ Archivos de programa (x86) \ Referencia Assemblies \ Microsoft \ Framework \ v3.5 \ System.Core.dll' y 'c: \ Windows \ Microsoft.NET \ Framework \ v4.0.30319 \ mscorlib .dll '

Parece que algo está agarrando 4.0 pero no estoy muy seguro de cómo solucionarlo. ¿Alguien más se encuentra con esto?

El compañero de trabajo tenía este mismo problema. Se tomó una reinstalación de Windows para corregir el problema

He abierto un error en este caso: https://connect.microsoft.com/VisualStudio/feedback/details/558245/warning-cs1685-when-compiling-a-v3-5-net-application-in-visual-studio-2010

Si el compilador está configurado en modo detallado veo esto:

FrameworkPathOverride = C : \ Windows \ Microsoft.NET \ Framework \ v4.0.30319

que es defined como:

Especifica la ubicación de mscorlib.dll y microsoft.visualbasic.dll. Este parámetro es equivalente al /sdkpath del compilador vbc.exe .

Algunos otros datos interesantes: He creado un nuevo proyecto todos juntos y no puedo construir v3.5 en absoluto. Puedo construir 2.0, 3.0, 3.5 Client Profile, 4.0 y 4.0 Client Profile sin problemas. VB.NET puede construir v3.5 pero C# no. Intenté reinstalar .NET 3.5, 4.0 y Visual Studio 2010 sin éxito. Los registros de depuración de Visual Studio no muestran nada interesante y el Modo seguro no funciona.

Tratando de evitar un equipo con Windows vuelva a instalar ...

EDIT: Me he dado cuenta de que otros se enfrentan a este problema también. Link, Link, Link


reinstaladas varias veces. Las desinstalaciones de Visual Studio no se limpian después de ellas. He creado una máquina virtual para desarrollar hasta que tenga la oportunidad de volver a instalar mi sistema operativo principal.

Respuesta

7

El problema fue causado por los cambios realizados en este post. Forzar la carga de la última versión de CLR es lo que causó el problema. ¡Ten cuidado!

+0

Tengo exactamente el mismo problema, y ​​aunque borré las claves de registro que configuré en 1 (en la publicación que enlazo) e incluso intenté establecerlas con el valor 0, todavía no puedo compilar en el marco 3.5. ¿Lo solucionó sin reinstalar? – sabanito

+0

Inmediatamente después de eliminar esa clave, comenzó a funcionar. Lo siento: | –

0

Aquí una sugerencia :

  1. limpia su solución y vuelva a intentarlo. Si no tiene éxito proceda con el paso 2.
  2. Descargue el proyecto haciendo clic derecho sobre ella y seleccionando la opción "Descargar proyecto"
  3. botón derecho del ratón y seleccione "Proyecto Edición"
  4. Asegúrese de que su proyecto se dirige a la versión de marco correcta mirando hacia arriba y ajuste de la valor de la etiqueta siguiente:
<TargetFrameworkVersion>v4.0</TargetFrameworkVersion> 
  1. Comprueben la lista de referencia de su proyecto:
<ItemGroup> 
    <Reference Include="System" /> 
    <Reference Include="System.Data" /> 
    <Reference Include="System.Xml" /> 
    <Reference Include="Microsoft.CSharp" /> 
    ... 
</ItemGroup> 

Asegúrese de que no hay una doble referencia.

Espero que esto ayude.

De lo contrario, haga una copia de seguridad de sus archivos de proyecto, elimine el proyecto y vuelva a agregarlo a un nuevo proyecto. Esto debería funcionar.

+0

Gracias por la pista, pero el proyecto se dirige a 3.5 como debería y no tiene referencias definidas en el archivo del proyecto. –

0

Supongo que podría haber una referencia al marco 4.0 en un proyecto o archivo de solución; tal vez haya diferentes elementos TargetFrameworkVersion. O tal vez algunos de los archivos en la carpeta bin u obj no están sincronizados.

Intente limpiar la solución o incluso eliminar manualmente el contenido de la carpeta bin y obj. Si esto no ayuda, simplemente compare la versión actual con la última versión que funciona en Subversion o el sistema de control de versiones que esté utilizando y debería ver si se produjo el cambio.

+0

Parece que es la caja y no el proyecto. Observe mis ediciones ... –

+0

Suena improbable, pero ¿ha buscado redireccionamientos de ensamblaje en la configuración de la máquina? –

+0

¿Cómo podría verificarlo? Gracias hombre –

1

Little cheat: Abrir la página de propiedades de proyectos VS210 ob build advanced check no hacer referencia a mscorlib.dll. Luego, en un editor de texto, abra el archivo de proyecto y añadir en las referencias:

<Reference Include="mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089, processorArchitecture=MSIL" /> 

Bye

0

por this post en Microsoft Connect, usted podría ser capaz de resolver esto añadiendo una línea para su solución o proyecto archivo configurando ToolPath para que AspNetCompiler sea "C: \ Windows \ Microsoft.NET \ Framework \ v2.0.50727".

0

He visto este problema muchas veces; la solución podría ser muy simple.

En mi caso, el proyecto VS infractor contenía muchos directorios virtuales (20).

Una vez que esto volvió a suceder, eliminé todas las Virtuals Dirs y luego recreé una a la vez y reconstruí el proyecto cada vez que buscaba este erorr.

Cuando agregué dos virtuales uno detrás del otro sin compilación, el error reapareció.

La solución fue eliminar el último VDir, luego reconstruir, restaurar Vdirs y luego reconstruir. Sólo de esas cosas estrafalarias que se encuentran al repetir metódicamente un proceso que puede convertirse en un "timevamp" o "tiempo perdido" que toma su día, tarde, noche y posiblemente el acceso a una buena cerveza en su cervecería artesanal local.

Cuestiones relacionadas