2017-03-11 34 views
6

Tôi đã cài đặt tác nhân VS 2017 Build và đăng ký nó trong hàng đợi đại lý 'Mặc định'. Dự án tôi đang cố gắng xây dựng là dự án thư viện lớp VS 2017, nhắm mục tiêu .Net Standard 1.0. Khi xây dựng từ Visual Studio, hãy xây dựng thành công. Tuy nhiên việc xây dựng trên các đại lý xây dựng không thành công.Visual Studio 2017 đại lý xây dựng không xây dựng với lỗi cs0400

T16: 05: 59.0389362Z ## [lỗi] C: \ Windows \ ServiceProfiles \ NetworkService \ AppData \ Local \ Temp.NETStandard, Version = v1.0.AssemblyAttributes.cs (4,20): Lỗi CS0400: Không thể tìm thấy tên kiểu hoặc không gian tên 'Hệ thống' trong không gian tên chung (bạn thiếu tham chiếu assembly?)

Bằng cách so sánh nhật ký xây dựng với bản dựng cục bộ của tôi, tôi có thể thấy rằng tác nhân tạo dựng csc.exe thiếu thuộc tính 'tham chiếu'. Dự án của tôi không có bất kỳ tham chiếu rõ ràng nào - nó chỉ yêu cầu thư viện NetStandard 1.0 (SDK). Dòng lệnh xây dựng đại lý sử dụng là:

\ MSBuild \ 15.0 \ Bin \ Roslyn \ csc.exe/noconfig/unsafe-/checked-/nowarn: 1701,1702,1705/nostdlib +/errorreport: nhanh chóng/cảnh báo: 4/xác định: TRACE; RELEASE; NETSTANDARD1_0/debug-/debug: portable/filealign: 512/nologo/optimization + /out:obj\Release\netstandard1.0\Geo.Common.dll/ruleset: "C: \ Program Files (x86) \ Microsoft Visual Studio \ 2017 \ Professional \ Team Tools \ Công cụ phân tích tĩnh \ Bộ quy tắc \ MinimumRecommendedRules.ruleset "/ target: thư viện/warnaserror-/utf8output/deterministic + Distance.cs DistanceExtensions.cs GeoCoordinate.cs Unit. cs "C: \ Windows \ ServiceProfiles \ NetworkService \ AppData \ Local \ Temp.NETStandard, Phiên bản = v1.0.AssemblyAttributes.cs" obj \ Release \ netstandard1.0 \ Geo.Common.AssemblyInfo.cs

Tôi biết tôi chỉ có thể mã hóa danh sách 'tham chiếu' dưới dạng thuộc tính dòng lệnh cho bước xây dựng trong định nghĩa xây dựng, nhưng đó là giải pháp thay thế. Cách khắc phục đúng cách này là gì?

Cảm ơn!

CẬP NHẬT Hóa ra rằng lý do cho sự thất bại là bước đầu trong định nghĩa xây dựng, các NuGet Restore được sử dụng phiên bản 3.5 của nuget.exe. Bởi vì tệp dự án ở định dạng VS 2017, nuget.exe không thể tìm thấy bất kỳ gói được tham chiếu nào, vì vậy đã hoàn thành thành công mà không thực sự kéo bất kỳ thứ gì vào. Do đó, bước tiếp theo, bản dựng không thành công như không có gói NuGet (do đó bất kỳ hội đồng) đã được tìm thấy.

SOLUTION

tôi tải nuget.exe 4,0 (tìm thấy here) và đặt nó trong thư mục làm việc của đại lý (D: \ VsAgentWork \ nuget.exe trong trường hợp của tôi). Sau đó, tôi đã tùy chỉnh bước NuGet Restore, để tham khảo nuget.exe từ vị trí được cung cấp (.... \ nuget.exe).

+0

Vì bạn nói "mặc định" hàng đợi, bạn có thể xác nhận điều đó có nghĩa là bạn đang sử dụng một đại lý tư nhân? Hoặc, bạn đang sử dụng hồ bơi được lưu trữ? Ngoài ra, nhiệm vụ là gì trong việc xây dựng def? VS Build nhiệm vụ? Nếu vậy, phiên bản nào được chọn trong menu thả xuống? – bryanmac

+0

Ngoài ra, bạn có đang sử dụng VSTS hoặc TFS 2015/2017 không? RTM/QU1? – bryanmac

+0

Tôi đang sử dụng tác nhân riêng tư. Đó là VisualStudio.com trực tuyến. – Artak

Trả lời

2

Bạn cần khôi phục gói cho giải pháp của mình. Đối với .NET Core, bạn cần phải làm điều này với cli dotnet hoặc với mục tiêu khôi phục MSBuild/t: hoặc bạn có thể tải NuGet 4 từ trang nuget và đặt nó trên máy xây dựng của bạn và chỉ định nó trong đường dẫn trên trình cài đặt NuGet bài tập.

+0

Cảm ơn Chris, tôi sẽ thử điều này và trả lời sau tối nay. – Artak

+0

Khi câu trả lời của bạn phục vụ như là một điểm khởi đầu tốt để tiếp tục điều tra, tôi đánh dấu nó là "Trả lời". Nhưng tôi sẽ nêu chi tiết câu hỏi của tôi ở trên, vì vậy những người khác có thể thấy những gì thực sự đã xảy ra và cách tôi sửa nó. – Artak

0

Tôi cũng đã trải nghiệm điều này với VS2017, có vẻ như đó là lỗi.

Trong trường hợp đầu tiên chỉ khởi động lại VS, nhưng tôi đã tìm thấy các bước đầy đủ đôi khi cần thiết để giải quyết vấn đề:

  1. Đóng VS
  2. Xóa thư mục .vs/
  3. Xóa mọi bin/obj/ thư mục
  4. Tải lại VS và chạy bản dựng lại
+0

Cảm ơn bạn đã trả lời, Nick. Nhưng vấn đề không phải là trong Visual Studio. Nó xây dựng tốt. Đó là vấn đề về Windows Build Agent. – Artak

0

Đã cùng một vấn đề chính xác này, và chuyển từ

nuget restore xyz.sln 

để

dotnet restore 
nuget restore xyz.sln 

trước khi xây dựng bản thân cố định nó.

Các vấn đề liên quan