2013-07-11 56 views
6

Tôi thêm vào giải pháp của tôi thông qua Nuget các gói Autoumapper và NUnit và chúng hoạt động tốt và dự án biên dịch trong máy tính của tôi.Xây dựng thất bại trong teamcity cho gói Nuget

Khi tôi tuyên bố máy chủ xây dựng để xây dựng giải pháp này tôi đã nhận thông điệp này:

[MSBuild] AutoMapper\AutoMapperSpike.csproj: Build default targets (1s) 
[10:35:50][AutoMapper\AutoMapperSpike.csproj] ResolveAssemblyReferences 
[10:35:50][ResolveAssemblyReferences] ResolveAssemblyReference 
[10:35:50][ResolveAssemblyReference] Primary reference "AutoMapper". 
[10:35:50][ResolveAssemblyReference] C:\Windows\Microsoft.NET\Framework\v4.0.30319\Microsoft.Common.targets(1360, 9): warning MSB3245: Could not resolve this reference. Could not locate the assembly "AutoMapper". Check to make sure the assembly exists on disk. If this reference is required by your code, you may get compilation errors. 
[10:35:50][ResolveAssemblyReference]   For SearchPath "{HintPathFromItem}". 
[10:35:50][ResolveAssemblyReference]   Considered "..\packages\AutoMapper.2.2.1\lib\net40\AutoMapper.dll", but it didn't exist. 

Có ai biết làm thế nào để giải quyết vấn đề này?

Một điều khác tôi nhận thấy là nó tạo ra các tác phẩm trong máy chủ xây dựng cũng với thư mục gói. Điều duy nhất nó không thể làm là xây dựng dự án trong máy chủ xây dựng.

+0

Bạn đã tự kiểm tra các gói chưa? – Arran

+0

Gói packages.config và tất cả các dự án có tham chiếu dự án (bao gồm cả dll được thêm bởi nuget) đều được đăng ký. – FelProNet

+0

tệp có thực sự tồn tại hay không? – stijn

Trả lời

0

Bạn cần kiểm tra gói trong VCS hoặc - tốt hơn - enable NuGet package restore trong giải pháp của mình.

+0

Nó vẫn là lỗi tương tự sau khi thực hiện. – FelProNet

6

Trong môi trường Visual Studio, có một tùy chọn trong giao diện người dùng đặt giá trị trên hồ sơ người dùng của bạn để bạn không bao giờ phải nhớ lại. Tuy nhiên, trên máy chủ xây dựng, không có tùy chọn nào như vậy. Thay vào đó, bạn phải đặt biến môi trường “EnableNuGetPackageRestore” thành “true” như một phần của bản dựng của bạn.

Tôi khuyên bạn không nên cố gắng đặt biến môi trường bên trong tập lệnh xây dựng hoặc tệp .csproj của bạn. Here’s the blog article all about why it happened and what to set on your dev machine/build server.

+0

Hey, tôi đã thử thiết lập biến môi trường này tại máy chủ xây dựng mà không thành công. Đó là vấn đề tương tự như trước đây. – FelProNet

+0

Bạn có gặp lỗi giống như trước đó hay bất kỳ thay đổi nào trong lỗi.? – RinoTom

+0

Lỗi tương tự. Hiện tại tôi đang sử dụng thư viện của bên thứ ba trong các mục giải pháp cho đến khi tôi tìm ra giải pháp cho vấn đề này. Tôi muốn làm việc với Nuget miễn là nó sẽ không gây ra vấn đề trong việc xây dựng sever. – FelProNet

4

Đảm bảo TeamCity thực sự tải xuống gói. Bạn có thể thấy rằng trong lịch sử xây dựng trên một trang kết quả xây dựng duy nhất, trên tab Gói NuGet. Nếu bạn thấy gói của bạn ở đó, thì TeamCity là okay với gói.

Tiếp theo, hãy đảm bảo bạn có thể xây dựng dự án của mình mới ra khỏi VCS, ví dụ: sao chép và cố gắng xây dựng nó như vậy, vì đó là những gì TC phải làm.

Vấn đề của tôi trong một trường hợp rất giống là tôi vừa sao chép một dự án vào kho lưu trữ của người dùng và các tham chiếu sai, mặc dù quá trình biên dịch thành công cục bộ do DLL được lưu trong bộ nhớ cache: s. Gỡ cài đặt gói và cài đặt lại nó từ Trình quản lý gói của Visual Studio đã giải quyết sự cố.

+0

Làm sạch bản sao đã tiết lộ sự cố của tôi. Mẹo hay. –

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