Les générations NAnt échouent sur Windows Server 2008 après l'installation du Kit de développement ASP.NET 2.0 SDK

StackOverflow https://stackoverflow.com/questions/635224

  •  10-07-2019
  •  | 
  •  

Question

J'utilise TeamCity pour gérer l'un de mes projets, mais cela ne semble pas bien fonctionner avec Nant sous Windows Server 2008. Que puis-je faire pour résoudre ce problème?

AVANT d’installer le kit de développement logiciel ASP.NET 2.0 Framework:

[10:21:07]: BUILD FAILED
[10:21:07]: Failed to initialize the 'Microsoft .NET Framework 2.0' (net-2.0) target framework.
[10:21:07]:     Property evaluation failed.
[10:21:07]: Expression: ${path::combine(sdkInstallRoot, 'bin')}
[10:21:07]:                             ^^^^^^^^^^^^^^
[10:21:07]:         Property 'sdkInstallRoot' has not been set.

APRES:

[11:48:16]: Target framework: Microsoft .NET Framework 2.0
[11:48:16]: Target(s) specified: test 
[11:48:16]:  [property] Target framework changed to "Microsoft .NET Framework 3.5".
[11:48:16]: BUILD FAILED
[11:48:16]: INTERNAL ERROR
[11:48:16]: System.NullReferenceException: Object reference not set to an instance of an object.
[11:48:16]:    at NAnt.Core.FrameworkInfo.get_Version()
[11:48:16]:    at NAnt.Core.Project.UpdateTargetFrameworkProperties()
[11:48:16]:    at NAnt.Core.Tasks.PropertyTask.ExecuteTask()
[11:48:16]:    at NAnt.Core.Task.Execute()
[11:48:16]:    at NAnt.Core.Project.InitializeProjectDocument(XmlDocument doc)
[11:48:16]:    at NAnt.Core.Project.Execute()
[11:48:16]:    at NAnt.Core.Project.Run()
[11:48:16]: Please send bug report to nant-developers@lists.sourceforge.net.
[11:48:16]: Total time: 0.1 seconds.
[11:48:16]: Process exited with code 1
[11:48:16]: Build finished
Était-ce utile?

La solution

Un couple de choses qui peuvent causer cela.

  1. Le SDK .Net 2.0 complet n'est pas installé sur votre ordinateur.
  2. Il vous manque des clés de registre. Si vous regardez dans le registre de dire une machine Windows XP / Vista et recherchez le sdkInstallRoot vous le trouverez probablement. Ensuite, il suffit de répliquer le code sur votre serveur.

Cependant, pour vérifier que les sdks du framework .net sont installés, allez au moins dans le dossier C: \ windows \ Microsoft.net et dans la version dont vous avez besoin, puis effectuez une recherche à l'intérieur pour essayer de trouver, par exemple, le fichier csc.exe ou programmes vbc.exe. Si vous ne pouvez pas les trouver, alors le SDK n’est pas installé mais le runtime est probablement installé.

Essayez-le et voyez si cela vous aide.

Autres conseils

  1. Il nécessite une entrée .net 3.5 dans les & "; frameworks &"; section.

  2. Garantit que la racine Sdkinstall de la version 3.5 de la section est la suivante, ce qui constitue la cause première de ce problème -
    <readregistry property="sdkInstallRoot" key="SOFTWARE\Microsoft\Microsoft SDKs\Windows\v7.0A\WinSDK-NetFx40Tools\InstallationFolder" hive="LocalMachine" failonerror="false" />

J'espère que ça aide!

Lorsque j'utilisais Nant avec un serveur Windows Server 2003 64 bits, je devais télécharger une version nocturne, car Nant 0.86 beta 1 posait des problèmes en 64 bits. Je l'ai fait fonctionner mais je ne suis pas sûr que cela fonctionne avec Windows Server 2008. Nant est en version bêta depuis toujours. Si vous êtes bloqué sur Nant, essayez une compilation nocturne si non, je recommande MSBuild pour les machines .Net 2+ et 64 bits.

Pour plus d'informations, consultez cet article MsBuild vs . Nant

J'ai rencontré des problèmes similaires avec NAnt. Je sais que ce n’est pas la solution Meilleure , mais c’est une solution qui fonctionne si vous avez besoin de faire avancer votre projet.

J'ai constaté que l'installation d'un environnement de développement (C # Express ne fonctionnait pas pour moi, mais que VS 2008 le soit) sur le serveur fait disparaître ce problème. (Oui, je réalise que cela va à l'encontre des meilleures pratiques habituelles, mais cela fonctionne et laisse mes scripts s'exécuter afin que je puisse revenir à la programmation.)

Je me suis dit que j'aurais quelque chose à partager si quelqu'un d'autre se trouvait dans une situation similaire. (Cela a fonctionné pour moi, à la fois avec CruiseControl.Net et avec Hudson).

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top