2012-09-11 13 views
5

Sau khi cài đặt Visual Studio 2012 với .NET 4.5 Tôi bắt đầu để có được các lỗi sau đây khi xây dựng sử dụng msbuild:Msbuild không thành công với msb4064 lỗi và msb4063

  • lỗi MSB4064:

Tham số "SdkToolsPath" không được tác vụ "GenerateResource" hỗ trợ. Xác minh tham số tồn tại trên nhiệm vụ, và nó là một thuộc tính thể hiện công khai.

  • lỗi MSB4063:

Các "GenerateResource" nhiệm vụ không thể được khởi tạo với các thông số đầu vào của nó. tập tin dự án tiêu đề là như sau:

<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="4.0"> 

Bất cứ ý tưởng gì thay đổi đã được thực hiện trong .NET 4.5 mà có thể gây ra những sai lầm abover?

Trả lời

0

Tôi đã gặp phải sự cố tương tự và phát hiện thấy tôi đang sử dụng hack trong một trong các dự án để xử lý một số lượng lớn tệp tài nguyên (If your build fails with “MSB6002: The command-line for the “ResGen” task is too long”).

Sau khi xóa tất cả các thuộc tính không được hỗ trợ bởi phiên bản 3.5 của tác vụ (GenerateResource Task) bản dựng của tôi đang hoạt động trở lại.

3

Đây là sự cố với tệp Microsoft.Common.targets trong C: \ Windows \ Microsoft.Net \ v4.0.30319. Sau khi bạn cài đặt chuyên biệt Visual Studio 2012, tệp này được thay đổi. Một trong những thay đổi được thực hiện là thực hiện với "sửa lỗi" GenerateResourceMSBuildRuntime trong trường hợp ai đó nâng cấp máy tính của họ lên Windows 8 (đọc nhận xét phức tạp ở dòng 2271 để biết chi tiết). sửa chữa của tôi chỉ đơn giản là để nhận xét ra dòng sau trong Microsoft.Common.targets nộp

<GenerateResourceMSBuildRuntime 
    Condition="'$(GenerateResourceMSBuildRuntime)' == '' and 
       $([MSBuild]::DoesTaskHostExist(`$(TargetFrameworkAsMSBuildRuntime)`, `$(GenerateResourceMSBuildArchitecture)`))">$(TargetFrameworkAsMSBuildRuntime)</GenerateResourceMSBuildRuntime> 
1

Thực ra một giải pháp tốt hơn nếu bạn đã thực hiện các cách giải quyết đề nghị của Bernard ví dụ (If your build fails with “MSB6002: The command-line for the “ResGen” task is too long”). là xóa hoàn toàn workaround khỏi tệp dự án của bạn. Microsoft đã thực sự cố định sự cần thiết cho cách giải quyết này với các công cụ Visual Studio 2012 SDK.

Xem discussion on connect liên quan đến vấn đề này.