update for downloads mono xbuild

for - ¿Qué significan estas advertencias Mono/xbuild y cómo las soluciono?



mono sdk 5.12 0 linux (1)

Construyo proyectos VS2010 con xbuild 2.10.5.0 de Mono. Los proyectos usan el ''.NET Framework 3.5 Client Profile'' como el framework objetivo (deben ser 3.5 compatibles y no necesito más que las partes del perfil del cliente).

Recibo las siguientes advertencias:

Build succeeded. Warnings: c:/Project/MyProject.csproj (default targets) -> C:/PROGRA~2/Mono/lib/mono/4.0/Microsoft.Common.targets (GetReferenceAssemblyPaths target) -> C:/PROGRA~2/Mono/lib/mono/4.0/Microsoft.Common.targets: warning : Unable to find framework corresponding to the target framework moniker ''.NETFramework,Version=v3.5,Profile=Client''. Framework assembly references will be resolved from the GAC, which might not be the intended behavior. c:/Project/MyProject.csproj (default targets) -> C:/PROGRA~2/Mono/lib/mono/4.0/Microsoft.Common.targets (ResolveAssemblyReferences target) -> C:/PROGRA~2/Mono/lib/mono/4.0/Microsoft.Common.targets: warning : Reference ''mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'' not resolved C:/PROGRA~2/Mono/lib/mono/4.0/Microsoft.Common.targets: warning : Found a conflict between : ''System'' and ''System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089''. Using ''System'' reference. C:/PROGRA~2/Mono/lib/mono/4.0/Microsoft.Common.targets: warning : Found a conflict between : ''System.Core'' and ''System.Core, Version=3.5.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089''. Using ''System.Core'' reference.

Me temo que no los entiendo y el único hit de Google para "No se puede encontrar el marco correspondiente al moniker del objetivo" es la confirmación de ese mensaje de error.

¿Qué significan estas advertencias y cómo puedo solucionarlas? ¿El ''perfil del cliente'' no es compatible con Mono? Si es así, no pude encontrar nada sobre eso en la documentación de Mono. ¿Qué causa la referencia no resuelta de mscorlib y dónde están estas dos referencias del System que informa un conflicto entre ellas?


Está adivinando correctamente: Mono no admite el perfil ''Cliente'' (por ejemplo, busca la versión Mono de 3.5 Microsoft.Common.targets para cualquier mención de ''Cliente''), solo los perfiles completos 3.5 y 4.0. Para solucionarlos, debe especificar uno de los perfiles admitidos en su archivo de proyecto. La selección de perfil solo restringe el conjunto de referencias disponibles durante la compilación, un ensamblado compilado con el perfil ''Cliente'' funcionará perfectamente en el perfil ''Completo''.

La referencia no resuelta de mscorlib, Version=2.0.0.0 está sucediendo porque está compilando con un perfil 4.0 (que es la alternativa predeterminada). Desaparecerá una vez que establezca su perfil en un valor compatible. Si no desea cambiar su archivo de proyecto, puede compilar con xbuild /p:TargetFrameworkProfile="" , que elige correctamente el conjunto de 3.5 conjuntos.