2015-12-02 24 views
8

Tôi nhận được lỗi sau khi sử dụng MSBuild. Các lỗi tôi nhận được là:MSBuild "sgen.exe" bị thiếu

C: \ Windows \ Microsoft.NET \ Framework \ v4.0.30319 \ Microsoft.Common.targets (2769,5): lỗi MSB3086: Nhiệm vụ không thể tìm thấy "sgen. exe "sử dụng SdkToolsPath " "hoặc khóa đăng ký " HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Microsoft SDK \ Windows \ v8. 0A \ WinSDK-NetFx40Tools-x86 ". Hãy chắc chắn rằng SdkToolsPath được thiết lập và sts cụ exi ở vị trí cụ thể đúng xử lý dưới SdkToolsPath và rằng Microsoft Windows SDK được cài đặt

Cho đến nay tôi đã làm như sau:

1) cài đặt Windows SDK v8 từ here

2) tôi khẳng định rằng chìa khóa registry "HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Microsoft SDKs \ Windows \ v8. 0A \ WinSDK-NetFx40Tools-x86" tồn tại trong registry

3) Khoá đăng ký từ 2 điểm trên đến đường dẫn "C: \ Program Files \ Microsoft SDK \ Windows \ v8.0A \ bin \ NETFX 4.0 Tools" và tôi đã xác nhận rằng đường dẫn tồn tại và sgen.exe đó là nằm trong thư mục đó

4) Tôi cũng đã thực hiện một số nghiên cứu của riêng mình và xem qua số this SO post nhưng câu trả lời liên quan đến việc cài đặt studio trực quan trên chính máy chủ KHÔNG PHẢI là tùy chọn cho tôi. Tuy nhiên tôi muốn chỉ ra rằng tôi có một máy chủ xây dựng với các thiết lập chính xác tương tự và nó làm việc tốt vì vậy công việc tạm thời của tôi xung quanh là xây dựng nó trên máy chủ đó và sau đó sao chép xây dựng hơn.

Bất kỳ ai có bất kỳ thông tin chi tiết nào về vấn đề có thể là gì?

+1

Tại sao bỏ phiếu xuống? –

Trả lời

7

Cuối cùng tôi đã có thể giải quyết nó. Các bước để giải quyết:

1) Gỡ cài đặt windows sdk 8 thông qua Chương trình và tính năng.

2) Cài đặt windows sdk 8.1 từ here.

3) Chỉnh sửa các khóa registry

  • SDK40ToolsPath
  • SDK35ToolsPath

dưới

HKLM \ SOFTWARE \ Wow6432Node \ MSBuild \ ToolsVersions \ 11.0

để

$ (Registry: HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Microsoft SDK \ Windows \ v8.1A \ WinSDK-NetFx40Tools-x86 @ InstallationFolder)

và registery phím

  • FrameworkSDKRoot
  • WindowsSDK80Path

để

$ (Registry: HKEY_LOCAL_MACHINE \ PHẦN MỀM \ Microsoft \ Microsoft SDK \ Windows \ [email protected])

Hy vọng điều này có thể giúp người khác trong tương lai nếu họ gặp phải vấn đề tương tự.

+1

Cảm ơn John Paul. Trên máy tính của tôi, đây là dưới HKEY_LOCAL_MACHINE \ SOFTWARE \ Wow6432Node \ Microsoft \ MSBuild \ ToolsVersions \ 4.0 \ 11.0, HKEY_LOCAL_MACHINE \ SOFTWARE \ Wow6432Node \ Microsoft \ MSBuild \ ToolsVersions \ 14.0 \ 11.0, và HKEY_LOCAL_MACHINE \ SOFTWARE \ Wow6432Node \ Microsoft \ MSBuild \ ToolsVersions \ 14.0 \ 14.0 và tôi đặt SDK40ToolsPath thành C: \ Program Files (x86) \ Microsoft SDK \ Windows \ v8.1A \ bin \ NETFX 4.5.1 Công cụ trên tất cả chúng. – TomEberhard

+0

Tôi chỉ sao chép các giá trị \ toolsversions \ 4.0 \ vào \ toolsversions \ 4.0 \ 11.0, nhưng câu trả lời này làm rõ vấn đề cho tôi ... tks –

+0

Tôi chưa tìm thấy đường dẫn đăng ký được đề xuất, nhưng tìm thấy một đường dẫn thay thế xuất hiện để có cùng giá trị mong đợi, nhưng trong thư mục v12, không phải v11. Đây có phải là điều tương tự? Đó là một lỗi đánh máy? HKEY_LOCAL_MACHINE \ SOFTWARE \ WOW6432Node \ Microsoft \ MSBuild \ ToolsVersions \ 12.0 \ 11.0 –

3

Câu trả lời này không hiệu quả đối với tôi. Tôi đã có Windows 8.1 SDK nhưng không phải phiên bản 8. Tôi phải tải xuống phiên bản 8 chứa SDK .Net Framework 4.5. SDK .Net Framework 4.5 (đi kèm với Windows 8 SDK) và 4.6 SDK (đi kèm với Visual Studio 2015). Tôi có VS 2015.

Tất cả các SDK có thể được tải xuống riêng lẻ tại https://msdn.microsoft.com/en-us/library/5a4x27ek(v=vs.110).aspx.

Tôi đã tải xuống 4.5 SDK và cài đặt nó (lưu ý không có tính năng Trình xác minh ứng dụng do lỗi cài đặt). Sau khi khởi động lại, bản dựng của tôi hoạt động tốt.

+1

Tôi đã từ bỏ SDK 10. Đó là loại 8.1 SDK và những người khác đã bị bỏ qua sau 10 SDK. Nhưng cảm ơn, bạn cho tôi một hy vọng) Tôi đã giải quyết vấn đề này bằng một wrapper cmd http://stackoverflow.com/a/41784486/390940 – it3xl

2

Tôi đã gặp lỗi tương tự, thiếu sgen.exe khi sử dụng MSBuild. Tôi không phải thay đổi các giá trị đăng ký. Tôi đã chắc chắn rằng lệnh MSBuild đang sử dụng phiên bản mà tôi đã cài đặt. Tôi đã cài đặt Visual Studio 2015 và 2017 trên PC của mình.

Trong trường hợp của tôi là C:\Program Files (x86)\MSBuild\14.0\bin. Vì vậy, tôi thiết lập đường dẫn đến giá trị này, và khi tôi chạy tập tin thực thi của mình với tập hợp đường dẫn mới, nó đã biên dịch thành công.