Простой скрипт сборки HelloWorld - PullRequest
1 голос
/ 28 августа 2009

У меня есть простое приложение HelloWorld, которое я пытаюсь построить с помощью NAnt. Однако, даже с простейшими файлами сборки, я все еще не могу заставить его работать. Ниже приведен мой файл HelloWorld.build.

<?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>

Вот результаты.

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 nant-developers@lists.sourceforge.net.

Total time: 0 seconds.

Кроме того, когда я пытаюсь вручную установить .NET Framework для использования, я получаю следующее:

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.

Однако в файле конфигурации есть запись для .NET 3.5. Это с NAnt-0.86-beta и Visual C # 2008 Express Edition. Я совершенно не в курсе? Если да, есть ли у кого-нибудь файл сборки шаблона, который можно использовать повторно?

Спасибо.

Ответы [ 3 ]

2 голосов
/ 03 сентября 2009

Ну, я попробовал ваш файл сборки в очень простом консольном приложении, и кроме настройки аргументов командной строки, все это прекрасно работает для меня.

Вы пытались переустановить .net Framework 3.5, поскольку он определенно выглядит так, как будто этого не хватает (что произойдет, если вы попытаетесь выполнить msbuild из строки cmd с точным путем из каталога 3.5 framework?)

<?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>

вывод для моего проекта выглядит следующим образом

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.
1 голос
/ 26 октября 2009

Иногда эта ошибка возникает из-за того, что на сервере сборки не установлен sdk.

Попробуйте установить Windows SDK. Вы можете скачать его в Центре загрузки Microsoft

Для того, чтобы распознать sdk, могут потребоваться дополнительные шаги, обратитесь к этой странице блога Brook's Blog

0 голосов
/ 30 октября 2009

В Nant 0.86 есть ошибка, см. http://sourceforge.net/tracker/index.php?func=detail&aid=1986551&group_id=31650&atid=402868 для получения дополнительной информации.

Вы можете загрузить ночные сборки Nant (в настоящее время nant-0.86-nightly-2009-05-05), в которых исправлена ​​эта ошибка.

...