Компиляция x64 на 32-битной версии Windows (Teamcity) - PullRequest
7 голосов
/ 22 октября 2011

Наш агент Teamcity сейчас работает на 32-битной ОС, и до сих пор это не было проблемой (теперь у нас есть приложения для x64, которые можно встроить в него).

Я слышал, что возможно компилировать приложения x64на 32-битной ОС, но я никогда не делал этого.Каков будет шаг, необходимый для того, чтобы Teamcity создала конкретный проект в x64 - в идеале, с использованием MSBuild?

Когда я установил для своего проекта MSBuild «Запустить платформу» значение x64, мой агент предупредил меня:: DotNetFramework4.0_x64 существует "

В качестве примечания: в конечном итоге мы переместим агент на 64-битную ОС, но я хотел бы получить краткосрочное решение.

1 Ответ

15 голосов
/ 22 октября 2011

Я думаю, что Run Platform для MSBuild в TeamCity - для какой версии MSBuild использовать, он ищет MSBuild.exe в папке C:\Windows\Microsoft.NET\Framework64\v4.0.30319, когда вы используете 32-битную версию Windows, и этофреймворк не установлен.Однако 32-разрядная версия MSBuild может вызывать компилятор C #, который по-прежнему может создавать сборки x64, даже на 32-разрядной машине.

Что вы хотите сделать, это сделать Run Platform для x86, нопередайте /property:Platform=x64 как одну из ваших команд.Если у вас нет конфигурации x64, вы можете попытаться передать ее /property:Platform="Any CPU".Тем не менее, любой ЦП будет гарантированно работать, только если для всех сборок, на которые вы ссылаетесь в своем проекте, установлен также Любой ЦП.В качестве альтернативы вы можете создать пользовательскую конфигурацию, в которой все ваши сборки указаны как x64, и передать ее через командную строку в MSBuild.

Имейте в виду, что если какой-либо из ваших проектов является C ++, вам необходимо убедиться, чтоКомпиляторы x64 установлены, так как я не думаю, что они установлены по умолчанию.

...