Question

Je n’ai pas encore configuré mon projet ASP.NET MVC et il fonctionne correctement localement. J'ajoute nant à un dossier d'outils et l'ajoute au contrôle de version. TeamCity enregistre mes modifications et commence la construction, mais elle échoue.

Je pense utiliser la dernière version de Nant et j'ai ajouté le framework .net 3.5 à nant.exe.config. Qu'est-ce qui me manque sur le serveur et oui, le framework .net est installé sur le serveur car l'application asp.net mvc fonctionne si je construis et le déploie manuellement?

Le fichier de construction est le suivant:          

<target name="compile" description="Compiles using the AutomatedDebug Configuration">
    <msbuild project="Tolt.Sims.sln" />
</target>

Voici l'erreur:

BUILD FAILED Failed to initialize the 'Microsoft .NET Framework 2.0' (net-2.0) target framework.
Property evaluation failed. Expression: ${path::combine(sdkInstallRoot, 'bin')} ^^^^^^^^^^^^^^ Property 'sdkInstallRoot' has not been set.
For more information regarding the cause of the build failure, run the build again in debug mode. Try 'nant -help' for more information
Était-ce utile?

La solution

Si vous utilisez la version bêta de NAnt (qui est actuellement le seul moyen d'obtenir de l'aide pour cibler tout ce qui est supérieur à la structure 2.0), vous rencontrez peut-être un problème de registre. Un problème similaire a été signalé par Tim Barcz .

Les choses se résument à NAntContrib (fournisseur de la tâche msbuild) qui pointe vers la version 2.0 de msbuild. Découvrez sa solution pour voir si elle s’applique à votre scénario.

Autres conseils

Potentiellement, le SDK .NET Framework 2.0 n'est pas installé.

Vous pouvez l'installer à partir de http: // www.microsoft.com/downloads/details.aspx?familyid=fe6f2099-b7b4-4f47-a244-c96d69c35dec&displaylang=fr

J'ai résolu ce problème en ajoutant ce qui suit dans le registre:

Nouvelle valeur de chaîne sur: HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft.NETFramework

Nommé: sdkInstallRootv2.0

Avec la valeur: C: \ Program Files \ Microsoft Visual Studio 8 \ SDK \ v2.0 \

Semblait naître dans la vie ...

w: //

Ceci a été corrigé après la version 0.86 beta1. Le 1er avril 2010, la version 0.90 a été publiée avec le correctif dans le cas où la mise à niveau est une option pour vous. Pour plus de détails, la version du correctif de 0.90 semble avoir été une simple modification du fichier nant.exe.config. Le texte en gras ci-dessous a été ajouté et résoudra probablement le problème sans avoir à installer le SDK 2.0.

  

<directory name="${path::combine(sdkInstallRoot, 'bin')}" if = " $ {property :: existe ('sdkInstallRoot')} " / >

Mettez à jour la section net-2.0 pour y remédier.

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