2011-10-21 23 views
7

Tác nhân Teamcity của chúng tôi hiện đang chạy trên hệ điều hành 32 bit và đây không phải là vấn đề cho đến bây giờ (bây giờ chúng tôi có một ứng dụng x64 để xây dựng trong đó).Biên dịch x64 trên phiên bản 32bits của cửa sổ (Teamcity)

Tôi nghe có thể biên dịch các ứng dụng x64 trên hệ điều hành 32 bit nhưng tôi chưa bao giờ làm điều đó. Điều gì sẽ là bước cần thiết để Teamcity xây dựng một dự án cụ thể trong x64 - Lý tưởng nhất là sử dụng MSBuild?

Khi tôi đặt tài sản MSBuild của dự án của tôi "Run Nền tảng" để x64 đại diện của tôi cho tôi cảnh báo sau đây: "yêu cầu chưa được đáp ứng: DotNetFramework4.0_x64 tồn tại"

Như một mặt lưu ý: chúng tôi cuối cùng sẽ di chuyển các đại lý để một hệ điều hành 64 bit nhưng tôi muốn có một giải pháp ngắn hạn.

+2

Không bao giờ chọn x64 làm đích nhắm mục tiêu nền tảng, luôn là AnyCPU. –

Trả lời

15

Tôi nghĩ rằng Run Platform cho MSBuild trong TeamCity là phiên bản MSBuild sử dụng, nó đang tìm MSBuild.exe trong thư mục C:\Windows\Microsoft.NET\Framework64\v4.0.30319, khi bạn đang sử dụng phiên bản 32 bit của Windows và khung đó không phải là ' t được cài đặt. Tuy nhiên, phiên bản 32 bit của MSBuild có thể gọi trình biên dịch C# mà vẫn có thể tạo ra các assembly x64, ngay cả trên máy 32 bit của bạn.

Điều bạn muốn làm là thực hiện Run Platform cho x86, nhưng vượt qua /property:Platform=x64 làm một trong các lệnh của bạn. Nếu bạn không có Cấu hình x64, bạn có thể xem xét cố gắng vượt qua nó /property:Platform="Any CPU". Tuy nhiên, bất kỳ CPU nào cũng chỉ được đảm bảo hoạt động nếu tất cả các assembly mà bạn tham chiếu trong dự án của bạn cũng được đặt là CPU bất kỳ. Thay thế, bạn có thể tạo một cấu hình tùy chỉnh trong đó tất cả các assembly của bạn được chỉ định x64, và truyền nó thông qua dòng lệnh tới MSBuild.

Hãy ghi nhớ nếu bất kỳ dự án nào của bạn là C++, bạn sẽ cần phải chắc chắn rằng bạn đã cài đặt trình biên dịch x64, vì tôi không nghĩ rằng chúng được cài đặt theo mặc định.

+0

Đó là những gì tôi đang tìm kiếm. Ngoại trừ thay vì/Thuộc tính: Cấu hình = x64 là/Thuộc tính: Nền tảng = x64 – Benoittr

+0

Ồ vâng, đó là xấu của tôi, tôi sẽ cập nhật câu trả lời. Cấu hình dành cho Release/Debug, Platform chỉ định CPU. –

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