2009-08-28 4 views
1

J'ai une simple application HelloWorld que j'essaye de construire en utilisant NAnt. Cependant, même avec le plus simple des fichiers de construction, je n'arrive toujours pas à le faire fonctionner. Voici mon fichier HelloWorld.build.Script simple de construction HelloWorld

<?xml version="1.0"?> 
<project name="Hello World" default="build"> 
<property name="nant.settings.currentframework" value="net-3.5"/> 
<target name="build"> 
    <echo>Hello</echo> 
    <exec program="${framework::get-framework-directory(framework::get-target-framework())}\msbuild.exe"   
     commandline="HelloWorld /t:Clean /p:Configuration=Debug /v:q" workingdir="." /> 
</target> 

Voici les résultats.

C:\webdev\HelloWorld>c:\nant-0.86-beta1\bin\NAnt.exe build 
NAnt 0.86 (Build 0.86.2898.0; beta1; 12/8/2007) 
Copyright (C) 2001-2007 Gerry Shaw 
http://nant.sourceforge.net 

Buildfile: file:///C:/webdev/HelloWorld/HelloWorld.build 
Target framework: Microsoft .NET Framework 2.0 
Target(s) specified: build 

[property] Target framework changed to "Microsoft .NET Framework 3.5". 

BUILD FAILED 

INTERNAL ERROR 

System.NullReferenceException: Object reference not set to an instance of an object. 
    at NAnt.Core.FrameworkInfo.get_Version() 
    at NAnt.Core.Project.UpdateTargetFrameworkProperties() 
    at NAnt.Core.Tasks.PropertyTask.ExecuteTask() 
    at NAnt.Core.Task.Execute() 
    at NAnt.Core.Project.InitializeProjectDocument(XmlDocument doc) 
    at NAnt.Core.Project.Execute() 
    at NAnt.Core.Project.Run() 

Please send bug report to [email protected] 

Total time: 0 seconds. 

Aussi, lorsque je tente de définir manuellement le framework .NET à utiliser, je reçois le texte suivant:

C:\webdev\HelloWorld>c:\nant-0.86-beta1\bin\NAnt.exe -t:net-3.5 
NAnt 0.86 (Build 0.86.2898.0; beta1; 12/8/2007) 
Copyright (C) 2001-2007 Gerry Shaw 
http://nant.sourceforge.net 

Microsoft .NET Framework 3.5 (net-3.5) is not installed, or not correctly configured. 

    Object reference not set to an instance of an object. 

Cependant, le fichier de configuration dispose d'une entrée pour .NET 3.5 .C'est avec NAnt-0.86-beta et Visual C# 2008 Express Edition. Suis-je complètement hors piste? Si oui, est-ce que quelqu'un a peut-être un fichier de construction de modèle qui peut être réutilisé?

Merci.

+0

S'il vous plaît ajouter le fichier de construction à votre question –

Répondre

2

Eh bien, j'ai essayé votre fichier de construction sur une application de console très simple et en dehors de peaufiner les arguments de la ligne de commande tout cela fonctionne très bien pour moi.

Avez-vous essayé de réinstaller le NET Framework 3.5 comme il semble certainement comme des thats manquants (ce qui se passe si vous essayez d'exécuter msbuild à partir de la ligne de cmd avec le chemin exact du répertoire 3.5 cadre?)

<?xml version="1.0"?> 
<project name="HelloWorld" default="build"> 
    <property name="nant.settings.currentframework" value="net-3.5"/> 
    <target name="build">  
     <echo>Hello</echo>  
     <exec program="${framework::get-framework-directory(framework::get-target-framework())}\msbuild.exe" commandline="HelloWorld.sln /t:Clean /p:Configuration=Debug /v:q" workingdir="." /> 
    </target> 
</project> 

la sortie pour mon projet ressemble à ce

 
NAnt 0.86 (Build 0.86.2898.0; beta1; 08/12/2007) 
Copyright (C) 2001-2007 Gerry Shaw 
http://nant.sourceforge.net 

Buildfile: file:///C:/Documents and Settings/krystan/My Documents/Visual Studio 
2008/Projects/HelloWorld/test.build 
Target framework: Microsoft .NET Framework 3.5 
Target(s) specified: build 


build: 

    [echo] Hello 
    [exec] Microsoft (R) Build Engine Version 3.5.30729.1 
    [exec] [Microsoft .NET Framework, Version 2.0.50727.3082] 
    [exec] Copyright (C) Microsoft Corporation 2007. All rights reserved. 
    [exec] 

BUILD SUCCEEDED 

Total time: 0.2 seconds. 
+0

Je suis d'accord avec cela - obtenir 3.5 installé et aller de là, comme même si votre fichier de configuration est configuré pour l'utiliser, si ce n'est pas présent sur la boîte, vous pouvez ' t y accéder. –

1

Quelques fois cette erreur est parce que le serveur de build n'a pas le sdk installé.

Essayez d'installer Windows sdk. Vous pouvez le télécharger sur le Microsoft Download Center

Des étapes supplémentaires peuvent être nécessaires pour obtenir Nant de reconnaître le sdk, s'il vous plaît se référer à ce Page Brook's Blog Post