7

Web Deployを.NET 4使用してプロジェクトをビルドおよびデプロイしようとしていますが、ローカル開発マシンで実行されているTeamCityのインスタンスで(最終的には)正常に機能しましたが、同じ設定で新しいTeamCityインスタンスをセットアップしようとすると次のエラーが発生しました:MSBuildTeamCity

\Microsoft.Common.targets(2249, 9): error MSB3086: Task could not find "sgen.exe" 
using the SdkToolsPath 
"C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bin\NETFX 4.0 Tools\" or the 
registry key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SDKs\Windows\v7.0A".
Make sure the SdkToolsPath is set and the tool exists in the correct processor 
specific location under the SdkToolsPath and that the Microsoft Windows SDK 
is installed 

私はWindowsServer2008を実行しており、MSBuild4を含む.NET4をインストールしています。他のスレッドがこれが問題である可能性を示唆しているため、Windows SDK 7.1もインストールしましたが、それでも運がありません。任意のアイデアやアドバイスをいただければ幸いです。

ありがとう

4

4 に答える 4

7

TeamCity でも同じ問題がありました。解決するための私の手順は次のとおりです。

  1. Windows 7.1 用の Windows SDK をダウンロードします。サーバー/ユーザーが Web アクセスを許可していない場合、Web インストーラーは機能しないため、完全なパッケージのダウンロードをお勧めします。正しいバージョン (x86 [32 ビット]、x64 [64 ビット]、または Itanium) をダウンロードするように注意してください。
  2. インストール中に、次の 1 つのオプションを選択するだけで済みます: .NET 開発 -> ツール ここに画像の説明を入力
  3. ビルドを再試行してください。ビルドが正しく機能するためにエージェントを再起動する必要はありませんでした。

インストールのデフォルト パスを受け入れる場合、sgen.exeは次の場所にあります。

C:\Program Files\Microsoft SDKs\Windows\v7.1\Bin\sgen.exe
于 2013-01-08T04:37:41.407 に答える
6

Windows SDK 7.0A が Visual Studio を使用せずに verus を使用してインストールする方法について、何かおかしなことがありました。パスの問題があります。ビルド マシンに Visual Studio をインストールするのが簡単な方法ですが、それは間違っているように感じます。または、少なくとも私にはそうです。もう 1 つのオプションは、シリアル化アセンブリを作成しないようにビルドを設定することです。多くの場合、シリアル化アセンブリは重要ではありません。リリース ビルドをスキップすると、デフォルトでこれが発生することに注意してください。

本当の修正は、TeamCity を sgen.exe で適切にポイントしてから、正しいツールパスを使用して正しいフォルダーを使用するように msbuild に指示することです。良い説明については、この質問を参照してください。

于 2011-11-15T17:28:10.380 に答える
4

私はこれに頭を8時間ぶつけてあきらめ、翌朝30分でそれを理解しました. インターウェブで見つけられるものはすべて試しました。これが私がそれを理解した方法です。ビルド エージェントに SDK 7.1、7.0 がインストールされていることを確認しました。最終的に、レジストリ設定に戻りました。

「HKEY_LOCAL_MACHINE\SOFTWARE\MSBUILD\ToolsVersions\4.0」の下のMSBUILDの最初。ビルド エージェントのキー SDK40toolsPath 値は $(Registry:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SDKs\Windows\v7.0A\WinSDK-NetFx40Tools-x86@InstallationFolder) です。

「HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SDKs\Windows\v7.0A\WinSDK-NetFx40Tools-x86@InstallationFolder」を参照します。しかし、私のビルド エージェントでは、そのレジストリは存在しませんでした。したがって、何も参照していませんでした。7.0A レジストリ設定がどのようにそこに到達するのかわかりません!

そのため、「HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SDKs\Windows\v7.0A」レジストリ全体を動作中のビルド エージェントからファイルにエクスポートし、それを壊れたエージェントにコピーしてインポートしました。ようやく動作するようになりました。これが誰かに役立つことを願っています。

これはおそらくオーバーキルですが、エクスポートされたレジストリ ファイルの内容は次のとおりです。

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SDKs\Windows\v7.0A]
"InstallationFolder"="C:\\Program Files\\Microsoft SDKs\\Windows\\v7.1\\"
"ProductVersion"="7.1.7600.0.30514"
"ProductName"="Microsoft Windows SDK for Windows 7 (7.1.7600.0.30514)"

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SDKs\Windows\v7.0A\WinSDK-NetFx40Tools]
"ProductVersion"="7.1.7600.0.30514"
"ComponentName"="Windows SDK Tools for .NET Framework 4.0"
"InstallationFolder"="C:\\Program Files\\Microsoft SDKs\\Windows\\v7.1\\Bin\\NETFX 4.0 Tools\\"

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SDKs\Windows\v7.0A\WinSDK-NetFx40Tools-x64]
"ProductVersion"="7.1.7600.0.30514"
"ComponentName"="Windows SDK Tools for .NET Framework 4.0 (x64)"
"InstallationFolder"="C:\\Program Files\\Microsoft SDKs\\Windows\\v7.1\\Bin\\NETFX 4.0         Tools\\x64\\"

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SDKs\Windows\v7.0A\WinSDK-NetFx40Tools-x86]
"ProductVersion"="7.1.7600.0.30514"
"ComponentName"="Windows SDK Tools for .NET Framework 4.0"
"InstallationFolder"="C:\\Program Files\\Microsoft SDKs\\Windows\\v7.1\\Bin\\NETFX 4.0 Tools\\"

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SDKs\Windows\v7.0A\WinSDKBuild]
"InstallationFolder"="C:\\Program Files\\Microsoft SDKs\\Windows\\v7.1\\"
"ProductVersion"="7.1.7600.0.30514"
"ComponentName"="Microsoft Windows SDK Headers and Libraries"

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SDKs\Windows\v7.0A\WinSDKIntellisenseNFX]
"InstallationFolder"="C:\\Windows\\Microsoft.NET\\Framework\\"
"ProductVersion"="7.1.7600.0.30514"
"ComponentName"="Microsoft Windows SDK Intellisense for .Net"

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SDKs\Windows\v7.0A\WinSDKIntellisenseRefAssys]
"InstallationFolder"="C:\\Program Files\\Reference Assemblies\\Microsoft\\"
"ProductVersion"="7.1.7600.0.30514"
"ComponentName"="Windows SDK Intellisense and Reference Assemblies"

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SDKs\Windows\v7.0A\WinSDKInterop]
"InstallationFolder"="C:\\Program Files\\Microsoft SDKs\\Windows\\v7.1\\"
"ProductVersion"="7.1.7600.0.30514"
"ComponentName"="Microsoft Windows SDK NetFx Interop"

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SDKs\Windows\v7.0A\WinSDKNetFx35Tools]
"InstallationFolder"="C:\\Program Files\\Microsoft SDKs\\Windows\\v7.1\\bin\\"
"ProductVersion"="7.1.7600.0.30514"
"ComponentName"="Microsoft Windows SDK NetFx 3.5 Tools"

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SDKs\Windows\v7.0A\WinSDKNetFx35Tools\1033]
"SP"=dword:00000000

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SDKs\Windows\v7.0A\WinSDKNetFx35Tools-x64]
"InstallationFolder"="C:\\Program Files\\Microsoft SDKs\\Windows\\v7.1\\bin\\x64\\"
"ProductVersion"="7.1.7600.0.30514"
"ComponentName"="Microsoft Windows SDK NetFx 3.5 Tools (x64)"

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SDKs\Windows\v7.0A\WinSDKSamples]
"InstallationFolder"="C:\\Program Files\\Microsoft SDKs\\Windows\\v7.1\\Samples\\"
"ProductVersion"="7.1.7600.0.30514"
"ComponentName"="Windows SDK Samples"

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SDKs\Windows\v7.0A\WinSDKTools]
"InstallationFolder"="C:\\Program Files\\Microsoft SDKs\\Windows\\v7.1\\bin\\"
"ProductVersion"="7.1.7600.0.30514"
"ComponentName"="Windows SDK Common Utilities"

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SDKs\Windows\v7.0A\WinSDKTools-x64]
"InstallationFolder"="C:\\Program Files\\Microsoft SDKs\\Windows\\v7.1\\bin\\x64\\"
"ProductVersion"="7.1.7600.0.30514"
"ComponentName"="Windows SDK Common Utilities (x64)"

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SDKs\Windows\v7.0A\WinSDKWin32Tools]
"InstallationFolder"="C:\\Program Files\\Microsoft SDKs\\Windows\\v7.1\\bin\\"
"ProductVersion"="7.1.7600.0.30514"
"ComponentName"="Windows SDK Utilities for Win32 Development"

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SDKs\Windows\v7.0A\WinSDKWin32Tools-x64]
"InstallationFolder"="C:\\Program Files\\Microsoft SDKs\\Windows\\v7.1\\bin\\x64\\"
"ProductVersion"="7.1.7600.0.30514"
"ComponentName"="Windows SDK Utilities for Win32 Development (x64)"}
于 2012-08-15T15:19:46.063 に答える
0

私の場合、プロジェクトに Web 参照 (C# 2.0) を追加したときに問題が発生しました。プロキシを手動で構築することで回避できました。

wsdl.exe /out:d:\dev\MyProxy.cs /order https://blahblahblah?wsdl

...代わりに MyProxy.cs をプロジェクトにコピーするだけです。

于 2016-05-03T18:21:16.200 に答える