visual studio 2010 - studio - Problemas al actualizar el proyecto VB.Net 2008 a VS2010
shortcut para comentar en visual studio code (9)
¿Ha cambiado su script de compilación para usar la versión 4.0 de MSBuild? Me parece que no lo has hecho y MSBuild se está quejando de que no sabe nada sobre la advertencia 42353, etc. (lo que tendría sentido si se introdujeran en 4.0)
He estado actualizando varios proyectos VS2008 diferentes en VS2010 y he encontrado un problema con los proyectos VB.Net cuando se convierten.
Una vez convertidos, los archivos .vbproj cambiaron de esto en VS2008:
<PropertyGroup Condition=" ''$(Configuration)|$(Platform)'' == ''Debug|AnyCPU'' ">
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<DefineDebug>true</DefineDebug>
<DefineTrace>true</DefineTrace>
<OutputPath>bin/Debug/</OutputPath>
<DocumentationFile>CustomerManager.xml</DocumentationFile>
<WarningsAsErrors>41999,42016,42017,42018,42019,42020,42021,42022,42032,42036</WarningsAsErrors>
</PropertyGroup>
A esto en VS2010:
<PropertyGroup Condition=" ''$(Configuration)|$(Platform)'' == ''Debug|AnyCPU'' ">
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<DefineDebug>true</DefineDebug>
<DefineTrace>true</DefineTrace>
<OutputPath>bin/Debug/</OutputPath>
<DocumentationFile>CustomerManager.xml</DocumentationFile>
<NoWarn>42353,42354,42355</NoWarn>
<WarningsAsErrors>41999,42016,42017,42018,42019,42020,42021,42022,42032,42036</WarningsAsErrors>
</PropertyGroup>
La principal diferencia es que, en la versión VS2010, se ha agregado el valor 42353,42354,42355; Dentro del IDE, esto se manifiesta como la siguiente configuración en las Propiedades del proyecto | Compilar la sección como:
"Función que devuelve un tipo de valor intrínseco sin valor de retorno" = Ninguno
Esto no es un problema cuando se crea un código dentro de Visual Studio 2010, pero cuando se intenta generar el código a través de nuestros scripts de integración continua, falla con los siguientes errores:
[msbuild] vbc: Error de línea de comando FC2026: el número de advertencia ''42353'' para la opción ''nowarn'' no es configurable o no es válido
[msbuild] vbc: Error de línea de comando FC2026: el número de advertencia ''42354'' para la opción ''nowarn'' no es configurable o no es válido
[msbuild] vbc: Error en la línea de comandos FC2026: el número de advertencia ''42355'' para la opción ''nowarn'' no es configurable o no es válido
No pude encontrar nada en Google para estos mensajes, lo cual es extraño, ya que estoy tratando de averiguar por qué sucede esto.
¿Alguna sugerencia de por qué el asistente de conversión de Visual Studio 2010 está haciendo esto?
Ahora he investigado un poco más. Tenga en cuenta que no estoy usando TFS, usamos Subversion para la administración de versiones y nuestros propios scripts de compilación / despliegue que simplemente llaman a msbuild desde la línea de comandos, y ahí es donde falla el mío. Sin embargo, si abro las propiedades del proyecto en la versión actualizada, vaya a la pestaña Compilar y cambie la opción "Función que devuelve el tipo de valor intrínseco sin valor de retorno" de "Ninguno" a "Advertencia" y luego puedo generar el proyecto nuevamente.
Tenga en cuenta que esto tiene el mismo efecto que al editar el archivo vbproj, ya que elimina esos números de advertencia de la sección del archivo vbproj. También puede cambiar un par de otros números de advertencia allí, creo. De todos modos, puedo vivir con más advertencias (no es que reciba advertencias de todos modos, pero recibir una advertencia sobre esto en lugar de que la advertencia sea ignorada no puede ser un problema, la forma en que lo veo) y el proyecto se basa y funciona ahora, usando la versión 3.5 de msbuild que siempre hemos usado antes. Creo que es potencialmente un error en el asistente de actualización y también lo he informado a través de MS Connect.
Esta fue mi solución. Mis soluciones apuntan a .net 2.0 pero desde VS2010. Net-4.0 le dice a NAnt que use MSBuild desde la instalación de .net 4. todavía genera la salida 2.0 o 3.5 si eso es lo que está establecido en su archivo de proyecto. También la configuración de "ninguno" a "advertencia" en la sección de compilación de propiedades del proyecto ayuda como se menciona más adelante. :-)
nombre de propiedad = "nant.settings.currentframework" value = " net-4.0 "
<msbuild project="../Test.sln" verbosity="Normal">
<property name="Configuration" value="${Build.Configuration}" />
<property name="OutDir" value="${Build.OutputFolder}/Test//" />
<arg value="/t:Rebuild" />
</msbuild>
Las respuestas que dicen "use .net versión 4" son correctas e incorrectas, imo. Te permite construir el proyecto, pero no debería ser necesario. En mi caso, no quiero usar .net 4 msbuild, ya que es un proyecto web (asp mvc) que se debe implementar en servidores que no tienen .net 4 instalado. Es por eso que respondí "no" a la pregunta "¿Desea actualizar a .net 4" al convertir de VS2008 a VS2010? En mi opinión, este es un error en ese asistente de conversión, ya que dije que lo dejara como .net 3.5 pero no puedo compilar el proyecto resultante utilizando .net 3.5.
Puedo si elimino esas advertencias del archivo del proyecto, pero ¿alguien puede indicarme qué significan realmente estos códigos de advertencia? Estoy un poco sorprendido de no encontrar una lista de códigos de advertencia y explicaciones en alguna parte. La '''' Función que devuelve el tipo de valor intrínseco sin valor de retorno "= Ninguna ''- ¿es que para los 3 códigos de advertencia 8 en total o por separado)? ¿O solo para uno de ellos? No entiendo bien por qué hay 3 códigos si tienen 1 significado ...
Reproduzco este comportamiento en proyectos convertidos. No se puede encontrar ningún documento sobre el significado de estos números de advertencia, la biblioteca MSDN no se ha actualizado todavía. Sin embargo, mi compilador no tiene problemas con ellos. Su problema es seguramente causado por su servidor de compilación o scripts que usan una versión anterior de vbc.exe. Asegúrese de que el que se encuentra en c: / windows / microsoft.net / framework / v4.0.30319 compile el código.
Sólo quita el nowarn que funcionará.
En realidad, estamos trabajando en un framework 3.5 api, basado en visual studio 2008, algunas personas aquí trabajan en studio 2012, otras en 2008, en el mismo vbproj (archivo de 2 soluciones, 1 para 2008 y 1 para 2012).
Solo tuvimos que eliminar estos 3 números en la sección de modificación después de la actualización para hacer que nuestro proyecto se compile en nuestro servidor, donde Framework 4.0+ no está instalado, y todo funciona bien, usando msbuild 3.5.
Solo edite el archivo de proyecto * .vbproj y elimine todas las ocurrencias de 42353,42354,42355, esto debería solucionar el problema de compilación.
Solución encontrada en esta página de Microsoft Connect:
Después de la actualización, cambie la opción "Función que devuelve tipo de valor intrínseco sin valor de retorno" en las configuraciones de advertencia en la pestaña de compilación de las propiedades del proyecto de "Ninguna" a "Advertencia"
Todo parece funcionar ahora.
Tienes toda la razón al pensar que hackear los archivos .vbproj no es realmente la solución. Debe editar el archivo .config para que el servicio de compilación TFS use la versión 4.0 de MSBuild, tal como se describe en http://blogs.msdn.com/b/willbar/archive/2009/11/01/building-net-4-0-applications-using-team-build-2008.aspx . Nota: el servicio necesita reiniciarse para que el cambio surta efecto, y deberá usar el directorio correcto para el marco .NET 4.0 (el blog especifica una versión beta)