2011-10-21 8 views
7

Nasz agent Teamcity działa na 32-bitowym systemie operacyjnym, a do tej pory nie było to problemem (mamy teraz aplikacje x64, które można tam zainstalować).Kompilowanie x64 w 32-bitowej wersji Windows (Teamcity)

Słyszałem, że możliwe jest kompilowanie aplikacji x64 na 32-bitowym systemie operacyjnym, ale nigdy tego nie zrobiłem. Jaki byłby krok wymagany do zbudowania przez Teamcity konkretnego projektu w x64 - Idealnie przy użyciu MSBuild?

Kiedy ustawić mojego projektu właściwość MSBuild „Run Platform” x64 do mojego agenta dać mi następujące ostrzeżenie: „niespełnione wymagania: DotNetFramework4.0_x64 istnieje”

Na marginesie: będziemy ostatecznie przesunąć do środka 64-bitowy system operacyjny, ale chciałbym otrzymać rozwiązanie krótkoterminowe.

+2

Nigdy nie zaznaczaj wyraźnie x64 jako celu platformy, zawsze AnyCPU. –

Odpowiedz

15

myślę, że Run Platform dla MSBuild w TeamCity jest na co wersja MSBuild używać, to szuka MSBuild.exe w folderze C:\Windows\Microsoft.NET\Framework64\v4.0.30319, gdy jesteś w wersji 32-bitowej wersji systemu Windows, a ramy ISN” t zainstalowane. Jednak 32-bitowa wersja MSBuild może wywołać kompilator C#, który nadal może produkować zło? X64, nawet na 32-bitowym komputerze.

Co chcesz zrobić, to zrobić Run Platform dla x86, ale przekazać /property:Platform=x64 jako jedno z twoich poleceń. Jeśli nie masz konfiguracji x64, możesz rozważyć próbę przekazania go /property:Platform="Any CPU". Jednak każdy procesor będzie działał tylko wtedy, gdy wszystkie zespoły, do których odwołujesz się w projekcie, zostaną również ustawione jako Dowolny procesor. Alternatywnie, możesz utworzyć niestandardową konfigurację, w której wszystkie twoje zestawy są określone x64, i przekazać ją przez linię poleceń do MSBuild.

Należy pamiętać, że jeśli któryś z twoich projektów to C++, musisz się upewnić, że masz zainstalowane kompilatory x64, ponieważ domyślnie nie są one instalowane.

+0

Tego właśnie szukałem. Z wyjątkiem opcji/Właściwość: Konfiguracja = x64 to było/Właściwość: Platforma = x64 – Benoittr

+0

O tak, to jest moje złe, zaktualizuję odpowiedź. Konfiguracja dotyczy wersji/debugowania, platforma określa CPU. –

Powiązane problemy