Frage

Ich habe Nant eingerichtet, um mein ASP.NET -MVC -Projekt zu erstellen, und es funktioniert lokal gut. Ich füge einem Tools -Ordner Nant hinzu und füge ihn der Versionskontrolle hinzu. TeamCity nimmt meine Änderungen ab und startet den Build, aber es schlägt fehl.

Ich glaube, ich verwende die neueste Version von Nant und habe das .NET Framework 3.5 zum Nant.exe.config hinzugefügt. Was fehlt mir auf dem Server und ja, das .NET -Framework wird auf dem Server als ASP.NET -MVC -App installiert, wenn ich dort manuell erstellt und bereitete?

Die Build -Datei lautet wie folgt:

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

Hier ist der Fehler:

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
War es hilfreich?

Lösung

Wenn Sie die Beta -Version von Nant verwenden (was derzeit die einzige Möglichkeit ist, etwas zu unterstützen, um etwas Größeres als das 2.0 -Framework zu zielen), stoßen Sie möglicherweise auf ein Registrierungsproblem. Ein ähnliches Problem war Berichtet von Tim Barcz.

Die Dinge sind auf Nantcontrib (Anbieter der MSBuild -Aufgabe) ziemlich gut gefallen, die auf die 2.0 -Version von MSBuild hinweisen. Schauen Sie sich seine Lösung an, um festzustellen, ob sie für Ihr Szenario gilt.

Andere Tipps

Möglicherweise haben Sie nicht das .NET Framework 2.0 SDK installiert.

Sie können es von installierenhttp://www.microsoft.com/downloads/details.aspx?familyid=fe6f2099-b7b4-4f47-a244-c96d69c35dec&displaylang=en

Ich habe dies behoben, indem ich in der Registrierung Folgendes hinzugefügt habe:

Neuer String -Wert bei: hkey_local_maachine software microsoft.netframework

Namen: Sdkinstallrootv2.0

Mit dem Wert: C: Programme Microsoft Visual Studio 8 Sdk V2.0

Schien in das Leben zu springen ...

W: //

Dies wurde nach der Veröffentlichung von 0,86 Beta1 festgelegt. Am 1. April 2010 wurde 0,90 mit dem Fix veröffentlicht, falls die Aufrüstung von Nant eine Option für Sie ist. Um weitere Details bereitzustellen, scheint die Fix -Release in 0,90 einfache Änderungen an der Datei nant.exe.config gewesen zu sein. Der fundierte Text unten wurde hinzugefügt und wird das Problem wahrscheinlich beheben, ohne die 2.0 SDK installieren zu müssen.

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

Aktualisieren Sie den Abschnitt Net-2.0, um ihn zu beheben.

Ich bin auf ähnliche Probleme mit Nant gestoßen. Ich weiß, das ist nicht das, was nicht der ist Am besten Lösung, aber es ist eine, die funktioniert, wenn Sie Ihr Projekt in Bewegung bringen müssen.

Ich habe festgestellt, dass die Installation einer Entwicklungsumgebung (C# Express für mich nicht funktioniert hat, aber VS 2008) auf dem Server dieses Problem verschwindet. (Ja, mir ist klar, dass dies gegen normale Best Practices verstößt, aber es funktioniert und lässt meine Skripte laufen, damit ich wieder codieren kann.)

Ich dachte nur, ich würde es tun, wenn jemand anderes in einer ähnlichen Situation steht. (Dies hat für mich beide mit CruiseControl.net und Hudson funktioniert).

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top