Estaba jugando con VS2010 beta2. Me di cuenta de que si trato de agregar System.Core.dll a un proyecto que ya no tiene una referencia a eso, en VS2010, se queja diciendo que no puedo agregar ese ensamblado ya que el sistema del proyecto lo menciona. ¿Alguna idea de por qué están haciendo eso en VS2010/4.0? ¿Es porque han reenviado algunos tipos a mscorlib desde System.Core?System.Core.dll en 4.0 agregado por defecto?
Respuesta
System.Core ha sido parte del marco requerido desde 3.5, porque incluye cosas como ExtensionAttribute y los Operadores de consultas estándar LINQ. De forma similar, si crea un proyecto 3.5 en VS2008, automáticamente agregará una referencia a System.Core por usted.
Sé que agrega referencia a System.Core por defecto incluso en 3.5. Pero la diferencia aquí es que si eliminas esa referencia de System.Core del proyecto, y luego tratas de volver a agregarla, aparecerá en la cuna diciendo que el ensamblado ya está en el proyecto. Esto no ocurre en 3.5. – Niranjan
Eso suena como un error: o bien no debería permitirle eliminar esta referencia requerida, o debería permitirle volver a agregarla si elimina la referencia. Puede valer la pena informar sobre Connect. – itowlson
Error planteado: https://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?FeedbackID=525663 – Niranjan
No es una respuesta para "por qué lo están haciendo", pero podría ser útil.
Esta es la forma en que veo la cadena de acciones que conducen a la referencia implícita System.Core.dll
:
- Haces un proyecto en Visual Studio 2010. Genera .csproj con
ToolsVersion=4.0
. Suponga que utilizará MSBuild desde .NET 4. - Su .csproj importa
Microsoft.CSharp.targets
desde$(MSBuildBinPath)
. Supongo que serác:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\Microsoft.CSharp.targets
- Microsoft.CSharp.targets importaciones
Microsoft.Common.targets
- En .NET 4, Microsoft.Common.targets importaciones
Microsoft.NETFramework.props
- En Microsoft.NETFramework.props se pueden encontrar
AdditionalExplicitAssemblyReferences
nodo, que tiene un punto y coma -lista separada de asambleas. Encontré allí System.Core.dll y una variable para su posterior reemplazo.
lo tanto, para desactivar referencia implícita de System.Core.dll, puede eliminarlo de la lista de AdditionalExplicitAssemblyReferences
nodo en c:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\Microsoft.NETFramework.props
.
Después de esto, si se utiliza, por ejemplo, System.Linq
y no tienen ninguna referencia a System.Core.dll en su proyecto, tendrá lógicamente obtener error de compilación, al igual que en Visual Studio 2008.
- 1. constructores con valores por defecto en C# 4.0
- 2. Agregado de patrón de repositorio y raíz de agregado con Entity Framework 4.0
- 3. ¿Puedo usar System.Core.dll/System.Collections.Generic.HashSet en powershell?
- 4. por defecto en C#
- 5. ¿Cómo construir la aplicación del navegador por defecto en el sistema operativo Android 4.0
- 6. parámetros por defecto en C++
- 7. parámetros por defecto C#
- 8. Mongoose asincrónico por defecto
- 9. C argumentos por defecto
- 10. emulador por defecto Android
- 11. RadioButtonList marcada por defecto
- 12. Objetivo C ¿Parámetros por defecto?
- 13. Herencia por defecto de Python?
- 14. Prevenir por defecto Presione, pero no por defecto Arrastre en iOS MobileSafari?
- 15. WPF Encuadernación modo por defecto
- 16. IE8 ¿Representando IE7 por defecto?
- 17. Django - Generar babosa por defecto
- 18. valores por defecto servicio WCF
- 19. constructor por defecto para int
- 20. rubí en los carriles javascript_include_tag: por defecto
- 21. Ehcache caché por defecto en Java
- 22. creando una lista por defecto en python
- 23. en C# son métodos privados por defecto?
- 24. Ajustes por defecto en el cuadro combinado
- 25. Los valores por defecto en la matriz
- 26. ¿Por qué Run.Text se vincula de manera bidireccional por defecto?
- 27. ¿Por qué kerberos está por defecto en NTLM en WCF?
- 28. Agregado() ejemplo en R
- 29. desempeño agregado
- 30. Doctrine 2.1: ¿Cómo ordenar? ¿Por campo agregado en una colección?
Gracias por esta pregunta , probamos .Net4 con vs2010, pero nuestra solución tenía demasiado equipaje que no funcionaría, así que volvimos a 3.5. Siguiendo el error que planteaste, encontré la solución para poder agregar la referencia a System.Core en un proyecto que no se compilaría sin él. –
Se enfrentó al mismo problema en VS2012 al transferir el proyecto SL4 a SL5. –