¿Cómo puedo comenzar a construir proyectos que tengan como objetivo el Framework .NET 4.0?Creación de proyectos .NET 4 con Nant
Respuesta
Si desea utilizar nante para construir proyectos dirigidos a .NET 4.0 que tendrá que modificar NAnt.exe.config
y añadir el marco objetivo neto-4.0 y añadir una línea a la <supportedRuntime ... />
> sección <startup
.
Esto es bastante similar a estas preguntas/problemas:
<msbuild> task or msbuild.exe with NAnt?
Otra opción sería llamar directamente a partir de un bloque de MSBuild.
<property name="MSBuildPath" value="C:\WINDOWS\Microsoft.NET\Framework\v4.0\MSBuild.exe" />
<target name="build">
<exec program="${MSBuildPath}">
<arg line='"${SolutionFile}"' />
<arg line="/property:Configuration=${SolutionConfiguration}" />
<arg value="/target:Rebuild" />
<arg value="/verbosity:normal" />
<arg value="/nologo" />
<arg line='/logger:"C:\Program Files\CruiseControl.NET\server\ThoughtWorks.CruiseControl.MsBuild.dll"'/>
</exec>
</target>
http://paigecsharp.blogspot.com/2009/08/nant-net-framework-40-configuration.html es un código completo para el archivo .config para NAnt.
2010 15 de abril de ... Actualice la respuesta correcta anterior de Eugene, después de que se publicaron .net 4 y vs2010.
He descargado vs2010 y .net 4 runtime. La versión de producción parece ser v4.30319 es decir, (C: \ WINDOWS \ Microsoft.NET \ Framework v4.0.30319 \)
Después de revisar http://paigecsharp.blogspot.com/2009/08/nant-net-framework-40-configuration.html, ... me pega en el texto y cambie todo el texto de v4 .0.20506 a v4.30319 un texto agregado a NAnt.exe.config.
entonces he actualizado mi guión a Nant
<property name="nant.settings.currentframework" value="net-4.0" />,
esto para mi guión Nant proyecto utiliza el compilador .NET 4
Y esto me hizo un Nant Construir con .NET 4 binaria ....
Actualización 2010-06-14: Lo anterior fue respondido con nant-0.85, actualicé a nant-0.90 y tuve que agregar vendor="Microsoft"
al atributo framework que se agrega a nants config. Además, parece que nant0.9 encuentra las bibliotecas .NET de manera diferente, ya que tenía que añadir algo como esto a mi build.xml Nant ...
<property name="framework-get-assembly-directory" value="${framework::get-assembly-directory('net-4.0')}" />
<property name="dotNetReferenceAssemblyPath" value="${framework-get-assembly-directory}\" />
y
<include name="${dotNetReferenceAssemblyPath}System.ComponentModel.DataAnnotations.dll" />
La actualización de la versión de NAnt a la última versión disponible (actualmente 0.91 Alpha 2) fue necesaria para que esto funcione (además de los cambios de compilación y configuración). Por cierto, no necesitaba el último
Sólo para poner la información allí, así que podría encontrar de nuevo, para construir proyectos de C++, sin modificar la variable PATH environement y la creación de LIB/LIBPATH/incluir variables o Nant que va desde vsvars32, se necesita algo así en el archivo de configuración Nant:
<project>
<readregistry
property="WindowsSdkDir"
key="SOFTWARE\Microsoft\Microsoft SDKs\Windows\v7.0A\InstallationFolder"
hive="LocalMachine"
failonerror="true" />
<readregistry
property="installRoot"
key="SOFTWARE\Microsoft\.NETFramework\InstallRoot"
hive="LocalMachine" />
<readregistry
property="sdkInstallRoot"
key="SOFTWARE\Microsoft\Microsoft SDKs\Windows\v7.0A\WinSDK-NetFx40Tools\InstallationFolder"
hive="LocalMachine"
failonerror="false" />
<readregistry
property="vs10Win32Tools"
key="SOFTWARE\Microsoft\Microsoft SDKs\Windows\v7.0A\WinSDK-Win32Tools\InstallationFolder"
hive="LocalMachine"
failonerror="false" />
<readregistry
property="vcInstallDir"
key="SOFTWARE\Microsoft\VisualStudio\10.0\Setup\VC\ProductDir"
hive="LocalMachine"
failonerror="true" />
<readregistry
property="vs10dbghelp"
key="SOFTWARE\Microsoft\VisualStudio\10.0\Setup\Dbghelp_path"
hive="LocalMachine"
failonerror="true" />
<setenv name="PATH" value="${path::combine(vcInstallDir, 'bin')};${vs10dbghelp};${sdkInstallRoot};${vs10Win32Tools};${environment::get-variable('PATH')};" />
<setenv name="INCLUDE" value="${path::combine(WindowsSdkDir, 'include')};${path::combine(vcInstallDir, 'atlmfc/include')};${path::combine(vcInstallDir, 'include')};${environment::get-variable('INCLUDE')}" />
<setenv name="LIB" value="${path::combine(WindowsSdkDir, 'lib')};${path::combine(vcInstallDir, 'atlmfc/lib')};${path::combine(vcInstallDir, 'lib')};${environment::get-variable('LIB')}" />
<setenv name="LIBPATH" value="${path::combine(installRoot, 'v4.0.30319')};${path::combine(installRoot, 'v3.5')};${path::combine(WindowsSdkDir, 'lib')};${path::combine(vcInstallDir, 'atlmfc/lib')};${path::combine(vcInstallDir, 'lib')};${environment::get-variable('LIBPATH')}" />
</project>
La ruta de registro es la de VS2010 ya que el SDK correspondiente está tomando su tiempo ...
Utilicé todas las respuestas anteriores y todavía encontré algunos errores de compilación raros: "error MSB6006:" AL.exe "salió con el código 128 ". El error no fue útil en absoluto. Busqué en Google y obtuve algunas respuestas. Aquí están los enlaces: msdn help y asp.net forums
Luché con ese error durante un día completo, estudiando los registros "detallados" y "de diagnóstico", pero todo lo que hice fue apuntarme al ensamblado que falló en la construcción. Sin error específico Ni siquiera pude duplicarlo en mi caja local.Finalmente, decidí probar la sugerencia sobre la convención de nombres de los archivos de recursos en el segundo enlace (asp.net forums) y ... ¡aleluya! mi build comenzó a funcionar. No sé qué pasa con la compilación que falla debido al nombre del recurso, todavía estoy trabajando en eso, pero mi objetivo inmediato era lograr que la construcción funcionara.
Espero que esto ayude a alguien más por ahí.
NAnt 0.86 y versiones posteriores se ejecuta fuera de la caja. Al escribir esto, estoy usando 0.91.
Al realizar la descarga desde la red, recuerde "unblock" el archivo zip (restablecer la zona de seguridad) antes de desempacar.
tuve problema similar de 4,5, esta solucionado mi problema:
http://www.donnfelker.com/nant-sdkinstallroot-has-not-been-set/
Tengo una máquina de 64 bits, pero .NET se instala como de 32 bits. El sdkInstallRoot no puede encontrar la ruta correcta. Revisé mi editor de registro para encontrar la ruta correcta y reemplacé la entrada en nant.exe.config.
que sustituyen:
<locatesdk property="sdkInstallRoot" minwinsdkver="v7.0A" minnetfxver="4.0" maxnetfxver="4.0.99999" failonerror="false" />
con esto:
<readregistry
property="sdkInstallRoot"
key="SOFTWARE\Wow6432Node\Microsoft\Microsoft SDKs\Windows\v8.0A\WinSDK-NetFx40Tools\InstallationFolder"
hive="LocalMachine"
failonerror="false" />
- 1. Creación de proyectos .NET 4.5 con Nant
- 2. Proyectos de Building Flex en ant/nant
- 3. tarea Nant msbuild con .net 4.0 rc
- 4. ¿Creación NAnt o TFS que es mejor?
- 5. MSBUILDEMITSOLUTION no funciona con .NET 4?
- 6. Elección de .Net 4
- 7. Creación de carpetas dentro de un archivo zip en NAnt
- 8. usando ILMerge con .NET 4 bibliotecas
- 9. Creación de un servicio CalDAV con .Net
- 10. Creación de paquete pip Python con mis proyectos
- 11. Volcado de subprocesos con .net 4
- 12. NAnt Alternativas
- 13. Creación de proyectos de Android que hacen referencia a proyectos de biblioteca con ANT
- 14. ¿Qué .NET framework con MVC 4?
- 15. Default.aspx con IIS 6.0 y .Net 4?
- 16. Excepción SQL con .NET 4 y EF
- 17. Dynamic LINQ API con .NET Framework 4
- 18. cargar archivo con FTP usando nant
- 19. subversion/cruise control/nant/nunit con visual studio proyectos y soluciones
- 20. StackOverflowException en .NET 4
- 21. .NET 4 Caching Support
- 22. .NET 4 ... Parallel.ForEach() pregunta
- 23. .Proyectos de instalación de .NET con Visual Studio 2008
- 24. Creación de EPUB en .Net
- 25. TeamCity NUnitLauncher .net 4
- 26. .NET 4 SpinLock
- 27. ¿MEF requiere .NET 4?
- 28. Compilando el código .NET en .NET 4?
- 29. .NET 4 instancia de aplicación única
- 30. Creación de perfiles de aplicaciones .NET con Cronómetro
Esto es lo que necesitaba después de recibir el mensaje Por favor, añadir un \ \ nodo con la familia 'red' y CLRVERSION '4.0.30319 'debajo del nodo de la plataforma' win32 '. –