2010-06-15 43 views
7

Tôi đã có một giải pháp .NET với mục tiêu quản lý C++ assemlby .NET 3.5 được tạo với VS2010. Lệnh:Làm thế nào để xây dựng một dự án VS2010 C++ trên một BuildServer

%windir%\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe MyProject.sln 

biên dịch giải pháp trên máy tính của tôi.

On buildserver của tôi, tôi nhận được lỗi này:

Build FAILED.

"F:\CruiseControl.NET\Projects\MyProject\MyProject.sln" (default target) (1) -> "F:\CruiseControl.NET\Projects\MyProject\MyProject\MyProject.csproj" (default target) (2) -> "F:\CruiseControl.NET\Projects\MyProject\MyProjectMAPIHelper\MyProjectMAPIHelper.vcxproj" (default target) (3) ->
F:\CruiseControl.NET\Projects\MyProject\MyProjectMAPIHelper\MyProjectMAPIHelper.vcxproj(23,3): error MSB4019: The imported project "C:\Program Files\MSBuild\Microsoft.Cpp\v4.0\Microsoft.Cpp.Default.props" was not found. Confirm that the path in the <Import> declaration is correct, and that the file exists on disk.

0 Warning(s) 
1 Error(s) 

Trên máy dev của tôi tập tin tuyên bố

"C:\Program Files\MSBuild\Microsoft.Cpp\v4.0\Microsoft.Cpp.Default.props"

tồn tại. Trên máy chủ xây dựng của tôi không.

Khi tôi cố gắng sao chép tệp này (và tất cả các tệp khác trong cùng một thư mục), các lỗi khác đã xảy ra. Vì vậy, đây là cách sai.

EDIT: các lỗi khác có nghĩa là: Khi tôi sao chép tệp "Microsoft.Cpp.Default.props" trên máy chủ xây dựng, MSBuild đang xác nhận quyền sở hữu các tệp khác. Điều đó cho thấy tôi, rằng chỉ cần làm một bản sao của các tập tin bị thiếu không phải là những gì môi trường xây dựng được mong đợi. Tôi đang tìm một gói MSI/bất cứ thứ gì mà tôi có thể cài đặt trên máy chủ xây dựng của tôi và bất kỳ Dự án C++ nào sẽ xây dựng. Cài đặt SDK không phải là mẹo. Hoặc tôi đã làm điều gì sai trong khi cài đặt SDK. Hoặc không thể biên dịch các giải pháp Managed C++ VS2010 chỉ với SDK.

Tôi tin rằng "các lỗi khác" không liên quan gì đến vấn đề của tôi. Vấn đề của tôi là: "Làm thế nào để thiết lập môi trường xây dựng của tôi một cách chính xác". /EDIT

Những gì tôi đã làm cho đến bây giờ:

  • Tôi đã cài đặt mới nhất của Win7 SDK (http://blogs.msdn.com/b/windowssdk/archive/2010/05/25/released-windows-sdk-for-windows-7-and-net-framework-4.aspx)
  • Tôi đang nhắm mục tiêu .net 3.5
  • Tôi đã thử chơi với thuộc tính Platform Toolset - nhưng nó chỉ đang chơi
  • Trong giải pháp của tôi, có một Hội đồng C++ được quản lý (Vấn đề của tôi)
  • Tôi đang sử dụng MSBuild 4.0 vì các tệp dự án VS2010 mới không thể được biên dịch bằng MSBuild 3.5
  • Tôi đang sử dụng CC.NET. biên dịch không thành công trong CC.NET trên dòng lệnh. Vì vậy, nó không phải là một vấn đề CC.NET.

Có mẹo và thủ thuật nào để định cấu hình dự án của tôi đúng cách để biên dịch trên máy tính của tôi với VS2010 trên máy chủ xây dựng của tôi không? Có bất cứ điều gì thêm để cài đặt (trừ VS2010)?

Cảm ơn, Arthur

+0

Câu hỏi: Bạn có bị khóa cứng vào CC.Net hay bạn có khả năng xem xét nâng cấp lên cái gì khác không? – Caladain

+2

Tôi không nghĩ rằng việc thay đổi sang một công nghệ tích hợp liên tục khác sẽ thay đổi bất cứ điều gì. Như Arthur nói, xây dựng thất bại bằng cách sử dụng MSBuild đồng bằng. Điều này có vẻ là một vấn đề với .Net 4.0 mạnh mẽ hơn gắn liền với SDK 7.0A hơn nó phải được. –

+0

Vâng, đúng vậy. biên dịch không thành công trên dòng lệnh với MSBuild. CC.NET chưa được tham gia. – Arthur

Trả lời

4

Còn bây giờ, cài đặt VS 2010 là duy nhất của bạn lựa chọn an toàn. Windows SDK sẽ được cập nhật để cho phép kịch bản của bạn, nhưng tôi không có ngày phát hành cụ thể. Cho đến lúc đó, bạn sẽ cần phải cài đặt VS 2010 với các công cụ C++ để xây dựng giải pháp 2010 của bạn với các dự án C++. Đảm bảo bạn cho nhóm C++ biết về sự không hài lòng với tình huống này qua số team blog và/hoặc MSDN Forum của họ.

Ngay cả sau khi cài đặt VS 2010, bạn có thể cần phải gọi tệp vcvars * .bat thích hợp để thiết lập biến môi trường của bạn một cách chính xác.

+0

Tin buồn. Nếu cài đặt SDK không thực hiện thủ thuật, tôi sẽ phải cài đặt VS 2010 trên máy xây dựng của mình. Buồn, nhưng rõ ràng là đúng. – Arthur

+1

Sau nhiều nỗi đau, tôi đã phát hiện ra rằng 7.1 SDK không cài đặt các thiết lập cần thiết * nếu * bạn chọn đúng tùy chọn trong khi cài đặt và không cố gắng tự mình outsmart :). Xem câu trả lời ngắn cho http://stackoverflow.com/questions/4742325/how-to-build-a-vs2010-makefile-project-vcxproj-with-tfs-build-no-vs-2010/4768328#4768328 – BlueMonkMN

+0

Cách câu trả lời này có được chấp nhận không? Mục đích của một máy chủ xây dựng là không phải cài đặt Visual Studio ... @BlueMonkMN: Có phải bạn đang chạy một máy tính với Windows 7 hoặc một phiên bản máy chủ? – Brandon

1

Tại sao bạn không muốn cài đặt VS2010 trên máy chủ xây dựng của mình? Nếu nó được cấp phép, nó được cấp phép cho mỗi nhà phát triển không phải mỗi lần cài đặt, vì vậy tôi chắc chắn rằng bạn được phép không mua bản sao khác - hoặc tệ nhất là bạn có thể cài đặt phiên bản tốc hành. thiếu sót để bạn có thể sử dụng trình biên dịch SDK nền tảng.

Nếu bạn vẫn gặp sự cố với msbuild, bạn có thể sử dụng devenv.com /build để sao chép chính xác VS xây dựng.

+2

Cài đặt VS2010 sẽ là tùy chọn cuối cùng của tôi. – Arthur

+0

@Rup Cài đặt VS trên máy chủ xây dựng là một ý tưởng tồi tệ. Nó hoàn toàn trái ngược với những gì một máy chủ xây dựng dành cho - cung cấp một môi trường giống như khách hàng, sạch (các DLL hiện có, v.v.). Nếu bạn nghĩ rằng cài đặt VS trên máy chủ xây dựng là không có vấn đề, sau đó bạn cũng cần phải đề nghị cài đặt VS trên mỗi hộp khách hàng. – mafu

+0

@mafutrct Tôi thấy bạn đến từ đâu nhưng không có lý do gì bạn phải lưu trữ và kiểm tra ứng dụng trên máy chủ xây dựng của mình! Quay trở lại khi tôi viết rằng môi trường của chúng tôi là một máy chủ xây dựng cho các bài kiểm tra đơn vị và một số bài kiểm tra tích hợp nhưng triển khai tự động đến máy chủ khác (không có VS) để kiểm tra thực. – Rup

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