ASP.NET 2.0 SDKのインストール後、Windows Server 2008でNAntビルドが失敗する

StackOverflow https://stackoverflow.com/questions/635224

  •  10-07-2019
  •  | 
  •  

質問

TeamCityを使用してプロジェクトの1つを管理していますが、Windows Server 2008でNantとうまく機能していないようです。これを修正するにはどうすればよいですか?

ASP.NET 2.0 Framework SDKをインストールする前:

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

後:

[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
役に立ちましたか?

解決

これを引き起こす可能性のあるいくつかの事柄。

  1. 完全な.Net 2.0 SDKがインストールされていません。
  2. 一部のレジストリキーがありません。たとえば、Windows XP / Vistaマシンのレジストリを見て、sdkInstallRootを検索すると、おそらく見つかるでしょう。コードをサーバーに複製するだけです。

ただし、.net framework sdkがインストールされていることを確認するには、少なくともC:\ windows \ Microsoft.netフォルダーに移動し、必要なバージョンに移動して、csc.exeまたはvbc.exeプログラム。それらが見つからない場合は、SDKがインストールされていませんが、ランタイムがインストールされている可能性が高くなります。

試してみて、それが役立つかどうかを確認してください。

他のヒント

  1. <!> quot; frameworks <!> quot;に.net 3.5エントリが必要です。セクション。

  2. セクションの3.5バージョンのSdkinstallrootが次のようになっていることを確認します。これがこの問題の根本原因です-
    <readregistry property="sdkInstallRoot" key="SOFTWARE\Microsoft\Microsoft SDKs\Windows\v7.0A\WinSDK-NetFx40Tools\InstallationFolder" hive="LocalMachine" failonerror="false" />

これがお役に立てば幸いです!

NantをWindows Server 2003 64ビットサーバーで使用する場合、Nant 0.86 beta 1には64ビットの問題があるため、ナイトリービルドをダウンロードする必要がありました。動作するようになりましたが、Windows Server 2008で動作するかどうかはわかりません。Nantはずっとベータ版です。 Nantにこだわっている場合は、ナイトビルドを試してください。そうでない場合は、.NET 2+および64ビットマシン用のMSBuildをお勧めします。

詳細については、この記事をご覧ください MsBuild vs 。Nant

NAntで同様の問題が発生しました。これはベストのソリューションではないことは承知していますが、プロジェクトを動かす必要がある場合に有効なソリューションです。

サーバーに開発環境(C#Expressは機能しませんでしたが、VS 2008は機能しました)をサーバーにインストールすると、この問題がなくなることがわかりました。 (はい、これは通常のベストプラクティスに反することに気付きますが、機能し、スクリプトを実行できるため、コーディングに戻ることができます。)

他の誰かが同じような状況にある場合に共有すると思いました。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top