Tôi đang sử dụng Visual Studio 2010 để xây dựng dự án C# có cả mục tiêu x86 và x64. Khi tôi xây dựng bằng cách sử dụng IDE, tôi nhận được kết quả chính xác của các mục tiêu x64 và x86.xây dựng dự án x64 C# với kết quả msbuild trong mục tiêu 32bit
Khi tôi sử dụng msbuild trên dòng lệnh, tôi nhận mọi thứ được xây dựng trong x86, mặc dù tôi chỉ định x64 trên dòng lệnh.
Tôi không gặp vấn đề này cho đến khi tôi nâng cấp từ .Net 4.0 lên .Net 4.5.
Với .Net 4.0 Tôi đã có thể nhận được các mục tiêu x64 của mình ngay cả khi tôi đã chỉ định x86 trên dòng lệnh.
Tôi đã tạo bản dựng trong môi trường .Net 4.0 và sau đó xây dựng một môi trường .Net 4.5 khác và đưa đầu ra vào tệp nhật ký. Tôi nhận thấy một số khác biệt trong các tập tin log nhưng tôi nghĩ rằng đây là những gì đang gây ra vấn đề của tôi:
Trong Net 4.0 Tôi thấy dòng này trong file log:
/tài liệu tham khảo: C: \ Windows \ Microsoft. Net \ assembly \ GAC_MSIL \ Microsoft.CSharp \ v4.0_4.0.0.0__b03f5f7f11d50a3a \ Microsoft.CSharp.dll
In .Net 4.5 Tôi thấy dòng này trong tệp nhật ký: /r: "C: \ Program Files (x86) \ Tham chiếu Assemblies \ Microsoft \ Framework.NETFramework \ v4.0 \ Microsoft.CSharp.dll "
Bất kỳ ý tưởng nào? Nó seams. Net 4.5 đang sử dụng một đường dẫn cụ thể x86.
Bạn sử dụng dòng lệnh nào để chạy msbuild? Bạn có tạo tệp sln hoặc csproj không? Làm thế nào để bạn vượt qua cấu hình cụ thể? – Lanorkin
msbuild project.sln/p: Nền tảng = "x64"/t: Làm sạch; Xây dựng lại/p: Cấu hình = Gỡ lỗi – Tony
Cấu hình có đúng trong dòng này trong phần đầu của nhật ký 'Cấu hình giải pháp xây dựng" Gỡ lỗi | x64 "'? Làm thế nào để bạn hiểu rằng kết quả không chính xác? Các thư mục đầu ra nào được tạo ra - 'bin \ x86 \ Debug' hoặc' bin \ x64 \ Debug'? – Lanorkin