2011-03-22 16 views
5

Los archivos de solución y de proyectos relevantes para esta pregunta se encuentran en:msbuild trabaja en la línea de comandos, pero VS2010 dice que un proyecto es "no seleccionado"

http://code.google.com/p/benfwaves/source/browse/trunk/BenfWaves.sln?r=26

http://code.google.com/p/benfwaves/source/browse/trunk/BenfWaves.Library/BenfWaves.Library.csproj?r=26

http://code.google.com/p/benfwaves/source/browse/trunk/BenfWaves.Client/BenfWaves.Client.csproj?r=26

http://code.google.com/p/benfwaves/source/browse/trunk/BenfWaves.Tests/BenfWaves.Tests.csproj?r=26

He intentado refactorizar los archivos del proyecto a eli minate redundancy y permite la compilación de .NET 3.5 y .NET 4.0. Actualmente, el VS2010 IDE puede compilar para cualquier CPU en .NET 4.0. Si intento Cualquier CPU para .NET 3.5, que dice:

de error 1 No se pudo cargar el archivo o ensamblado 'System.Drawing, Version = 4.0.0.0, Culture = neutral, PublicKeyToken = b03f5f7f11d50a3a' o uno de sus dependencias. El sistema no puede encontrar el archivo especificado. La línea 123, la posición 5. D: \ proyectos \ BenfWaves \ trunk \ BenfWaves.Client \ Propiedades \ Resources.resx 123 5 BenfWaves.Client

leí que esto puede ser un problema con Resgen.exe, pero cambiando la bandera de 32 bits en ese archivo no mejoró la situación. Además, el IDE no creer que los proyectos tienen configuraciones para otra cosa que cualquiera de las CPU, que produce el siguiente problema:

------ Skipped Build: Project: BenfWaves.Library, Configuration: Debug-4.0 Any CPU ------ 
      Project not selected to build for this solution configuration 
------ Build started: Project: BenfWaves.Client, Configuration: Debug-4.0 x86 ------ 
      BenfWaves.Client -> D:\projects\BenfWaves\trunk\BenfWaves.Client\bin\x86\Debug-4.0\BenfWaves.Client.exe 
------ Skipped Build: Project: BenfWaves.Tests, Configuration: Debug-4.0 Any CPU ------ 
      Project not selected to build for this solution configuration 
========== Build: 1 succeeded or up-to-date, 0 failed, 2 skipped ========== 

Se saltarse las cosas que no debería. msbuild desde la línea de comandos funciona en las tres plataformas y no omite nada.

Cualquier sugerencia sería muy bienvenida. Gracias.

Editar: Después de la versión 27, al menos el problema "no seleccionado" ya no existe porque agregué líneas de configuración ficticias a los proyectos para engañar a VS2010 para que funcione. Sin embargo, el problema de compilación de recursos en .NET 3.5 aún persiste.

Respuesta

3

Veo que ha corregido los errores de configuración en su sln. El problema de Resx es el mismo que el descrito here.

+0

Tiene razón sobre la ruptura del recurso. – Reinderien

0

Es posible que desee intentar editar la configuración de compilación de la solución.

http://msdn.microsoft.com/en-us/library/kwybya3w.aspx

siga las instrucciones bajo el título "Para seleccionar y editar una configuración Generar solución"

+0

El problema era que a la Configuración de compilación de la solución GUI le faltaban entradas. Resolví ese problema en particular (vea el texto actualizado de la pregunta), pero aún nada compila en .NET 3.5. – Reinderien

5

Trate de asegurar que tanto $ (Configuración) y $ (Plataforma) tienen un valor por defecto, poniendo éstos líneas primera en su primera PropertyGroup ...

<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> 
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform> 

Esto podría ser relevante porque el IDE trata a estas propiedades de una manera especial y se puede confundir si no tienen ningún valor cuando se carga el proyecto.

+0

Buena sugerencia, pero, de hecho, lo que lo hizo está aquí: http://code.google.com/p/benfwaves/source/browse/trunk/BenfWaves.Client/BenfWaves.Client.csproj De las líneas 21 a 32. – Reinderien

+0

Esta solución me ayudó. Ejecuto msbuild desde la línea de comandos y los parámetros de Configuración y Plataforma de forma predeterminada a algo que no funcionó en mi caso. Al especificar explícitamente ambos parámetros trabajados para mí, p. Ej .: 'msbuild.exe MyApp.sln/p: Configuration = Debug/p: Platform = Win32' – papaiatis

13
  • En el Explorador de soluciones, haga clic en Solución
  • luego ir a Administrador de configuración
  • Asegúrese de que construyen la columna está marcada por los proyectos que desea construir cada vez.
Cuestiones relacionadas