7

Tengo un tipo de proyecto de terceros en Visual Studio que por algún motivo solo admite .NET Configuración de plataforma para la compilación, para todos los demás proyectos (estándar C#) en la solución I solo tiene AnyCPU. Por desgracia, desde que la actualización a VS 2010 se produce el error siguiente cuando se construyó:Configuración de plataforma para proyectos en VS 2010

Error 39 La propiedad está OutputPath no establece para el proyecto 'ReferencedBusinessProject.csproj'. Compruebe que haya especificado una combinación válida de Configuración y Plataforma para este proyecto . Configuración = 'Depurar' Plataforma = '.NET'. Este error puede también aparecer si algún otro proyecto está tratando seguir un referencia al proyecto a proyecto para este proyecto, este proyecto se ha descargado o no es incluido en la solución, y el proyecto de referencia no construir usando la misma configuración o una equivalente o Plataforma. C: \ Windows \ Microsoft.NET \ Framework \ v4.0.30319 \ Microsoft.Common.targets 483 10 CustomTypeProject

Es más o menos descriptiva en lo que falta, pero no he encontrado ninguna manera de solucionarlo hasta el momento . ¿Tiene alguna idea de cómo se puede resolver esto o cuál puede ser el problema?

+0

agregar/editar OutputPath en el archivo .csproj no resuelve el problema? – alexandrul

+0

Eso probablemente resolvería el problema (parte del), si yo pusiera allí un OutputPath incondicional (para todas las configuraciones). Sin embargo, el problema es que la configuración no se reconoce y, como resultado, se ignoran todas las propiedades condicionadas. –

+0

Ha intentado crear una 'nueva solución' con marcadores de posición de proyecto vacíos que resuelven lo que realmente tiene. Luego, busque/edite/modifique el .csproj real de acuerdo con los archivos 'placeholder' .csproj? es probable que falten secciones grandes en el archivo .csproj que especifican diferentes configuraciones para diferentes compilaciones. No soy un experto en MSBUILD, pero es solo un poco de XML después de todo. –

Respuesta

3

La plataforma .Net debe haber sido creada para el proyecto antes de recibirla por razones de transparencia, verifique la configuración del proyecto y si está construyendo cualquier CPU, entonces corrija la configuración del proyecto. (Los estándares son AnyCPU, x86, x64, win32) etc ...

Le sugiero que haga clic derecho en el archivo ".sln" y en el administrador de configuración establezca las propiedades de lo que desea construir cuando llame a una plataforma . Es decir.

Esta muestra es mejor servido con una configuración de llamadas "plataformas mixtas"

csproj1 platform=AnyCPU configuration=debug build checkbox (checked) 
csproj2 platform=.net configuration=debug build checkbox (checked) 

Esto le permitirá construir con msbuild La llamada sería

msbuild my.sln /p:configuration="Debug" /p:platform="Mixed Platforms" 

Ambos proyectos se basarán.

Cuestiones relacionadas