2011-08-16 10 views
8

Necesito compilar un proyecto para .Net 3.5 y .Net 4.0. ¿Cuál es la forma más baja de fricción de hacer esto? Si hago referencia a este proyecto desde otro ensamblado, ¿cómo puedo determinar a qué tiempo de ejecución se dirige? ¿O debería simplemente hacer referencia a los binarios directamente?¿Cómo compilo un proyecto para .Net 3.5 y 4 al mismo tiempo

+2

¿Hay diferencias reales es su código o ¿En qué dlls hace referencia cuando apunta a diferentes plataformas? – alun

+1

¿Por qué necesita compilar como .NET 4 si no utiliza ninguna característica de .NET4 en su código? Un proyecto .NET4 puede usar sus binarios compilados de .NET 3.5 sin ningún problema. – jgauffin

+0

No, no hay diferencias en el código. Todos los ensamblados hacen referencia a la versión 2.0 de libs. –

Respuesta

9

Lo hago simplemente por tener dos archivos csproj. Entonces puedo configurar la versión, las referencias, los símbolos de construcción, etc. fácilmente. Para evitar tener que mantener la lista de archivos en tanto, yo uso una manta incluir - es decir,

tengo (en el .csproj secundaria):

<Compile Include="..\TheMainProject\**\*.cs" /> 

esto dice "compilar todos los archivos .cs en y bajo .. \ TheMainProject ".

+0

Gracias, creo que eso es lo que buscaré. –

1

¿por qué lo necesitarías?

Con el poste/pre tarea de construcción puede ejecutar msbuild para llegar a un marco diferente, consulte la "toolversion" argumento

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

MSBuild.exe MyProject.proj /ToolsVersion:4.0

y echar un vistazo a

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

Pero todavía no veo ninguna situat donde lo necesitaría.

+0

Hay una situación similar al apuntar al tiempo de ejecución completo, Silverlight, monodroid, ... O, por supuesto, si su código difiere un poco entre versión .net. Tal vez, agregar una función solo sea compatible con las nuevas versiones del marco. – CodesInChaos

Cuestiones relacionadas