Tôi có một dự án được xây dựng tốt trong VS 2008, và sau đó chúng tôi đã cài đặt và bắt đầu sử dụng TFS Build, và sau đó chúng tôi nâng cấp lên TFS 2010 Mọi thứ vẫn ổn và xây dựng chính xác (sau khi tôi thực hiện quy trình xây dựng mới của chúng tôi đã làm mọi thứ rất tốt đẹp chỉ với một cú nhấp chuột xây dựng bắt đầu từ bất kỳ ứng dụng khách Visual Studio 2010 từ xa nào). Visual Studio không cần phải được cài đặt trên Build Agent. Tôi đang cố gắng rất nhiều (rất khó) không cài đặt Visual Studio trên Tác nhân Xây dựng vì hiểu biết của tôi là không cần thiết và chúng tôi không được phép cài đặt nó trên máy không phát triển.Làm thế nào để xây dựng một dự án VSF010 MakeFile (vcxproj) với TFS Build (No VS 2010)
Bây giờ tôi đã thử nâng cấp giải pháp lên VS 2010, vẫn nhắm mục tiêu .NET 3.5 vì đây là một hội đồng được nhắm mục tiêu cho thủ tục CLR SQL Server và SQL Server không hỗ trợ .NET 4.0. Nhưng tôi chỉ đơn giản là không thể làm cho nó xây dựng nữa dưới TFS Build. Tôi dường như không thể nhận được một thông báo lỗi nhất quán từ TFS Build và từ dòng lệnh MS Build, nhưng tôi nghĩ nó có liên quan đến Microsoft.Cpp.Tác mục không nằm trong C: \ Program Files \ MSBuild \ bởi vì tôi đã cài đặt Visual Studio. Tôi đã cài đặt Microsoft Windows SDK 7.1 để tôi có thể chạy các công cụ .NET 4.0 SDK như svcutil cho một số dự án .NET 4.0 khác, nhưng không có gì có vẻ như cài đặt những gì xây dựng này muốn. Các lỗi TFS xây dựng mang lại cho tôi là:
C: \ TFSBld [...] \ GenerateLanguage \ GenerateLanguage.vcxproj (46,3): lỗi MSB4019: Dự án nhập khẩu "C: \ Microsoft.Cpp .Default.props "là không tìm thấy. Xác nhận rằng đường dẫn trong tuyên bố là chính xác, và tệp đó tồn tại trên đĩa.
Và khi tôi bấm vào lỗi mà nó đưa tôi đến dòng này trong file vcxproj:
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
Tất cả tôi thực sự cần phải làm gì trong dự án này được điều hành resgen để tạo ra các file nguồn lực từ các file resx và biên dịch chúng thành các hội đồng sattelite. Tôi đã sử dụng một makefile build để làm điều này, bằng tay chạy resgen (tôi nghĩ đó là vì tôi không thể tìm cách biên dịch các hội đồng sattelite như một giải pháp độc lập), và sau đó biên dịch chúng thành một DLL (I) không thể nhớ nó đã hoạt động như thế nào, nhưng tôi nghĩ rằng nó đã được chạy thủ công AL.exe để biên dịch các tệp DLL từ các tệp tài nguyên). Vì vậy, về cơ bản tôi chỉ cần chạy các dòng lệnh để xây dựng dự án này, và dường như tôi không thể tìm ra cách hợp lý để thực hiện nó mà không cần ném toàn bộ dự án và chỉnh sửa kịch bản lệnh xây dựng TFS để chạy một loạt các dòng lệnh được mã hóa cứng thay thế. Phải có một cách tốt hơn.
Tôi đã làm việc này cả ngày và đã cố gắng viết các tệp .targets tệp và .xml của riêng tôi để thay thế tệp chuẩn, nhưng trên đầu tôi. Tôi đã thử chỉ đơn giản là xóa các dòng, nhưng sau đó MSBuild phàn nàn rằng không có mục tiêu "Xây dựng". Tôi đã thử thêm một giả vào tập tin vcxproj, nhưng sau đó nó dường như không chạy các bước trước và sau xây dựng, nơi tất cả các công việc được thực hiện.
Dường như câu hỏi này đã được trả lời tại đây: http://stackoverflow.com/questions/3043294/how-to-build-a-vs2010-c-project-on-a-buildserver Thế nào là cách chính xác để cập nhật/xóa câu hỏi này? – BlueMonkMN