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).
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
Ngoài ra, bạn có đang sử dụng VSTS hoặc TFS 2015/2017 không? RTM/QU1? – bryanmac
Tôi đang sử dụng tác nhân riêng tư. Đó là VisualStudio.com trực tuyến. – Artak