Escribí un pequeño script de MSBuild para construir mi proyecto en múltiples versiones. Cuando lo ejecuto desde VS2012 Command Prompt funciona, no obtengo ningún error o excepción. Sin embargo, cuando comparo los conjuntos producidos, son idénticos. ¿Hay algo mal en mi script?¿Funciona correctamente mi secuencia de comandos de compilación para orientar varios marcos de destino?
<Target Name="Build">
<MSBuild Projects=".\WcfClientBase\WcfClientBase.csproj"
Properties="Configuration=Release;OutputPath=.\BuildArtifacts\net45;TargetFrameworkVersion=v4.5" />
<MSBuild Projects=".\WcfClientBase\WcfClientBase.csproj"
Properties="Configuration=Release;OutputPath=.\BuildArtifacts\net40;TargetFrameworkVersion=v4.0" />
<MSBuild Projects=".\WcfClientBase\WcfClientBase.csproj"
Properties="Configuration=Release;OutputPath=.\BuildArtifacts\net35;TargetFrameworkVersion=v3.5" />
</Target>
Tengo VS2012 Professional instalado. También noté que .NET 4.5 no tiene su propio MSBuild.exe. ¿Está usando el de la versión 4.0?
actualización
construí con Visual Studio para cada versión y todos los conjuntos son diferentes. Hay algo mal con mi script Deludí erróneamente el nombre del parámetro TargetFrameworkVersion pero todavía se creó y produjo los mismos resultados. Tal vez no pueda anular ese parámetro del archivo de proyecto o me faltan otros parámetros. ¿Alguna idea más?
Solo uso ILMerge para cambiar un ejecutable .NET 2 a .NET 4; p Recuerde, el punto de entrada dicta la versión de tiempo de ejecución. En mi caso, todos los ensamblados se construyen teniendo como objetivo .NET 2 y utilizando AnyCPU. Luego uso ILMerge y corflags para generar un conjunto de 4 ejecutables para la versión .NET y las combinaciones de bits. Funciona con encanto (en mi caso específicamente para usar ngen en las 4 configuraciones). – leppie
¿Cómo estás haciendo tu comparación? ¿Estás comparando byte por byte? –
@splatteredbits sí –