2 Stimmen

NAnt Builds schlagen auf Windows Server 2008 nach der Installation von ASP.NET 2.0 SDK fehl

Ich verwende TeamCity, um eines meiner Projekte zu verwalten, aber es scheint nicht gut mit Nant auf Windows Server 2008 zu funktionieren. Was kann ich tun, um dies zu beheben?

BEVOR Sie das ASP.NET 2.0 Framework SDK installieren:

[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.

NACHHER:

[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

2voto

user1825917 Punkte 21
  1. Es erfordert den Eintrag .net 3.5 im Abschnitt "Frameworks".

  2. Stellt sicher, dass die Sdkinstallroot der 3.5-Version im Abschnitt wie folgt lautet, was die Hauptursache für dieses Problem ist -
    <readregistry property="sdkInstallRoot" key="SOFTWARE\Microsoft\Microsoft SDKs\Windows\v7.0A\WinSDK-NetFx40Tools\InstallationFolder" hive="LocalMachine" failonerror="false" />

Ich hoffe, das hilft!

1voto

Joshua Cauble Punkte 1349

Es gibt einige Gründe, die dies verursachen können.

  1. Sie haben nicht das vollständige .Net 2.0 SDK installiert.
  2. Ihnen fehlen einige Registrierungsschlüssel. Wenn Sie in der Registrierung eines Windows xp / vista Rechners nach sdkInstallRoot suchen, werden Sie es wahrscheinlich finden. Kopieren Sie dann einfach den Code auf Ihren Server.

Um jedoch zu überprüfen, ob Sie zumindest die .net framework sdks installiert haben, gehen Sie einfach zum C:\windows\Microsoft.net und suchen Sie darin nach den Programmen csc.exe oder vbc.exe, die Sie benötigen. Wenn Sie sie nicht finden können, haben Sie das SDK nicht installiert, aber höchstwahrscheinlich die Runtime.

Probieren Sie das aus und sehen Sie, ob es hilft.

0voto

Bei der Verwendung von Nant mit einem Windows Server 2003 64-Bit-Server musste ich ein Nightly-Build herunterladen, da Nant 0.86 Beta 1 Probleme mit 64-Bit hat. Ich habe es zum Laufen gebracht, aber ich bin nicht sicher, ob es mit Windows Server 2008 funktioniert. Nant ist schon seit Ewigkeiten in der Beta-Phase. Wenn Sie an Nant festhalten, versuchen Sie ein Nightly-Build, wenn nicht, empfehle ich MSBuild für .Net 2+ und 64-Bit-Maschinen.

Weitere Informationen finden Sie in diesem Artikel MsBuild vs. Nant

0voto

Peter Bernier Punkte 7928

Ich habe ähnliche Probleme mit NAnt. Ich weiß, dass dies nicht die Am besten Lösung, aber es ist eine, die funktioniert, wenn Sie Ihr Projekt in Gang bringen müssen.

Ich habe festgestellt, dass die Installation einer Entwicklungsumgebung (C# Express funktionierte nicht für mich, aber VS 2008 tat) auf dem Server dieses Problem verschwinden lässt. (Ja, ich weiß, dass dies gegen die üblichen Best Practices verstößt, aber es funktioniert und lässt meine Skripte laufen, sodass ich mich wieder der Programmierung widmen kann).

Ich dachte nur, ich würde incase jemand anderes ist in einer ähnlichen Situation (dies hat für mich sowohl mit CruiseControl.Net und mit Hudson gearbeitet).

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X