Comment puis-je créer des projets qui ciblent le Framework .NET 4.0?Construction de projets .NET 4 avec Nant
Répondre
Si vous souhaitez utiliser Nant pour construire des projets ciblant .NET 4.0, vous devez modifier NAnt.exe.config
et ajouter le cadre cible net 4.0 et ajouter une ligne <supportedRuntime ... />
à la <startup
> section.
C'est assez semblable à ces questions/problèmes:
<msbuild> task or msbuild.exe with NAnt?
Une autre option serait d'appeler directement MSBuild à partir d'un bloc.
<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 est un code complet pour le fichier .config pour NAnt.
2010 15 avril, ... Mise à jour vers la bonne réponse ci-dessus de Eugene, après .net 4 et vs2010 a été publié.
J'ai téléchargé vs2010 et .net 4 runtime. La version de production semble être v4.30319 ie (C: \ WINDOWS \ Microsoft.NET \ Framework \ v4.0.30319)
Après avoir examiné http://paigecsharp.blogspot.com/2009/08/nant-net-framework-40-configuration.html ... Je collé dans le texte et changé tous les textes de v4 .0.20506 à v4.30319 un a ajouté du texte à NAnt.exe.config.
Je puis mis à jour mon script Nant à
<property name="nant.settings.currentframework" value="net-4.0" />,
ce donc mon script Nant projet utilise le compilateur .net 4
Et cela m'a fait un Nant construire avec .net 4 binaire ....
Mise à jour 2010-06-14: La réponse ci-dessus a été obtenue avec nant-0.85, j'ai mis à niveau vers nant-0.90 et j'ai dû ajouter vendor="Microsoft"
à l'attribut de structure ajouté à la configuration de nants. En outre, il semble que nant0.9 trouve les différentes bibliothèques .net, que je devais ajouter quelque chose comme ça à mon Nant build.xml ...
<property name="framework-get-assembly-directory" value="${framework::get-assembly-directory('net-4.0')}" />
<property name="dotNetReferenceAssemblyPath" value="${framework-get-assembly-directory}\" />
et
<include name="${dotNetReferenceAssemblyPath}System.ComponentModel.DataAnnotations.dll" />
Mise à jour de la version de NAnt à la dernière version disponible (actuellement 0.91 Alpha 2) était nécessaire pour que cela fonctionne (en plus des changements de construction et de configuration). btw, n'a pas besoin de la dernière
Juste pour mettre l'info il que je puisse trouver à nouveau, de construire C++ projets sans modifier la variable d'environement PATH et la création de variables ou Nant en cours d'exécution LIB/LIBPATH/Comprennent à partir vsvars32, quelque chose comme ce qui est nécessaire dans le fichier de configuration 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>
Le chemin du registre est celui de VS2010 car le SDK correspondant prend son temps ...
J'ai utilisé toutes les réponses ci-dessus et j'ai quand même rencontré des erreurs de construction bizarres: "erreur MSB6006:" AL.exe "est sorti avec le code 128 ". Erreur pas utile du tout. J'ai fait quelques recherches sur Google et trouvé quelques réponses. Voici les liens: msdn help et asp.net forums
J'ai lutté avec cette erreur pendant une journée complète, en étudiant les journaux "détaillés" et "diagnostic", mais tout ce qu'il m'a fait est de me montrer l'assemblage qui a échoué. Aucune erreur spécifique Je ne pouvais même pas le dupliquer sur ma boîte locale.Enfin, j'ai décidé d'essayer la suggestion sur la convention de nommage des fichiers de ressources dans le deuxième lien (asp.net forums) et ... alleluia! ma construction a commencé à travailler. Je ne sais pas ce qui se passe avec l'échec de la construction à cause du nom de la ressource, qui travaille encore là-dessus, mais mon objectif immédiat était de faire fonctionner le build.
J'espère que cela aidera quelqu'un d'autre.
NAnt 0,86 et versions ultérieures est prêt à l'emploi. Au moment d'écrire ceci, j'utilise 0,91. Lors du téléchargement depuis le réseau, n'oubliez pas de "unblock" le fichier zip (réinitialiser la zone de sécurité) avant de déballer.
J'ai eu problème similaire pour 4.5, cette résolu mon problème:
http://www.donnfelker.com/nant-sdkinstallroot-has-not-been-set/
J'ai une machine 64 bits, mais .net est installé comme 32 bits. Le sdkInstallRoot n'est pas capable de trouver le chemin correct. J'ai vérifié dans mon éditeur de registre pour trouver le bon chemin et remplacé l'entrée dans nant.exe.config.
Je remplacé:
<locatesdk property="sdkInstallRoot" minwinsdkver="v7.0A" minnetfxver="4.0" maxnetfxver="4.0.99999" failonerror="false" />
avec ceci:
<readregistry
property="sdkInstallRoot"
key="SOFTWARE\Wow6432Node\Microsoft\Microsoft SDKs\Windows\v8.0A\WinSDK-NetFx40Tools\InstallationFolder"
hive="LocalMachine"
failonerror="false" />
- 1. .NET projets construire l'automatisation avec NAnt/MSBuild + SVN
- 2. construction Échec de l'exécution Nant
- 3. Créer des projets VS2008 avec .Net 2.0/.Net 3.5 en utilisant NAnt
- 4. En utilisant NAnt pour construire des projets .NET 2.0
- 5. Nant: création de projets à l'aide de svn-externals
- 6. où se trouve le journal de construction lors de la construction d'un projet de château avec nant?
- 7. Construction de projets Flexbuilder dans ant
- 8. J'ai une erreur de construction d'un .vdproj sur msbuild avec nant
- 9. La construction de Nant échoue - mais seulement dans TeamCity
- 10. Signature d'un assemblage avec Nant
- 11. Construction de contrôles utilisateur .Net
- 12. Script simple de construction HelloWorld
- 13. Installation de nant avec un script batch
- 14. projets Passer avec ant Iterate projets
- 15. Comment créer un fichier de construction automatisé pour VB.Net dans NAnt?
- 16. Force la construction de plusieurs projets dans cruisecontrol.net
- 17. Ignorer l'avertissement NAnt
- 18. Utilisation de log4net dans .net petshop 4
- 19. Quels environnements alternatifs existent pour les projets de construction?
- 20. Construction d'un ensemble de projets spécifiques dans TFS
- 21. Gallio Intégration avec NANT et CruiseControl.NET
- 22. Nant et ASP/.NET 1.1: s'entendent-ils?
- 23. comment modifier la source avec NAnt?
- 24. Correction d'intégration continue pour NAnt 0.86 Beta 1 avec .NET 3.5
- 25. NAnt Alternatives
- 26. Modification AJAX dans .NET 4: Sys.Services.AuthenticationService
- 27. Flex 4 avec AIR
- 28. MSBuild vs nant
- 29. Utilisation de nant pour créer une tâche nant personnalisée
- 30. Comment est-ce que j'échoue automatiquement une construction nant si la requête NDepend lève un avertissement
C'est ce que je avais besoin après avoir reçu le message S'il vous plaît ajouter un \ \ nœud avec la famille 'net' et CLRVERSION « 4.0.30319 'sous le noeud de plate-forme' win32 '. –