Cuando construyo un A.sln que incluye 2 proyectos B.csproj y C.csproj que tiene referencias internas de proyecto, arroja errores de referencia en MSBuild. Pero cuando construyo B.csproj y C.csproj por separado en MSBuild, no arroje errores. Y también construir A.sln en VS IDE tampoco arroja errores. Estoy usando el framework .NET 2.0. A continuación, encontrará los scripts utilizados para compilar el sln y los projs.MSBuild construye proyectos con referencias de proyecto correctamente pero no desde la solución
MSBuild "<path>/A.sln" /p:Configuration=Release /p:StartupObject="" /p:WarningLevel=4 /p:Optimize=true /t:rebuild /l:Filelogger,Microsoft.Build.Engine;logfile=F:\A.sln.log /verbosity:normal
MSBuild "<path>/B.csproj" /p:Configuration=Release /p:StartupObject="" /p:WarningLevel=4 /p:Optimize=true /t:rebuild /l:Filelogger,Microsoft.Build.Engine;logfile=F:\B.csproj.log /verbosity:normal
MSBuild "<path>/C.csproj" /p:Configuration=Release /p:StartupObject="" /p:WarningLevel=4 /p:Optimize=true /t:rebuild /l:Filelogger,Microsoft.Build.Engine;logfile=F:\C.csproj.log /verbosity:normal
Editar:
Todos los errores generados son de código para refernces falta (todos son referencias del proyecto). Solo recibo tres tipos de errores como el que se detalla a continuación.
error CS0012: El tipo 'X' se define en un conjunto al que no se hace referencia. Debe agregar una referencia al ensamblado 'Y, Versión = 2.0.0.0, Cultura = neutro, PublicKeyToken = aad4cbe5d7c27078'.
CS0234 de error: El tipo o espacio de nombres 'X' no existe en el espacio de nombres 'Y' (¿falta una referencia asamblea?)
error CS0246: El tipo o espacio de nombres ' X' no se pudo encontrar (¿estás falta una directiva using o una referencia asamblea?)
limpié todas las DLL previamente construidas de caminos de construcción antes de la construcción del IDE y MSBuild. Pero IDE simplemente funciona bien y no muestra un indicador de falta de referencia en la sección "Refrences" para el proyecto.
No se agregaron rutas de referencia manualmente en IDE.
Otro Actualización:
Acabo de notar que cuando abro tanto los proyectos de la solución, las referencias están apuntando correctamente en el IDE. Pero cuando abro los proyectos por separado en IDE, las referencias que faltan que mencioné aparecen en MSBuild. Muy extraño.
Entonces, para resumir,
buiilding .proj en MSBuild - Buena
buiilding .proj en IDE - Error
buiilding .sln en MSBuild - Error
buiilding .sln en IDE - Bueno
Aspecto muy extraño para mi Ayuda mucho apreciada.
Cuando hace una pregunta y dice que hay un error, realmente ayuda cortar y pegar el error. Esto vale para excepciones, errores de compilación, errores de compilación ... –
Por cierto, si compila los dos proyectos individualmente sin problemas, entonces me pregunto si los dos proyectos necesitaban las referencias del proyecto. OTOH, esto podría estar funcionando debido a la función reciente que permite a MSBUILD ser "inteligente" sobre las referencias de proyectos. Como nunca he entendido esa característica, no puedo descartarla; pero le recomiendo que confirme si se requieren todas las referencias del proyecto, y si la reconstrucción B causa la reconstrucción de C. –
@blntechie: gracias por la actualización. Te sugiero que uses Solution Explorer; seleccione cada referencia, en orden, y observe los detalles en la ventana Propiedades. ¿Ves algo extraño, como un ser en obj y los demás en el cubo? Además, si no hay rutas de referencia, ¿no le molestaría mirar sus archivos .csproj.user para asegurarse de que realmente no hay ninguno? –