Я надеюсь реализовывать непрерывный модульный тест рабочая система, что-то, что я услышал, назвал "smoketest" или "трутницу", (сервер сборки, который действительно чистит контроль управления версиями и полные системные сборки всего в данном исходном репозитории или проекте), и что-то как "непрерывная интеграция" для малочисленных команд, с Delphi.
Я, ненавидят для согласия на коммерческий "продукт" сервера сборки, и надеюсь, что я могу сделать многое из этого только с поддержкой MSBuild, которая встроена в Дельфи.
Я ищу ресурсы, идеи и место для начала работы. Я не знаю, как использовать Сборку MS с этой целью. У Steve Trevethen есть сообщение в блоге, которое приводит к небольшому обсуждению старой dcc32 сборки командной строки, и некоторые комментарии упоминают сборку мс, которая была здесь начиная с Дельфи 2007. Я использую Delphi 2010. Я ищу руководство и понимание и события, которые скажут мне, действительно ли это - разумный путь для потери работоспособности, и в противном случае какой путь я должен пойти вместо этого?
Я нашел, что можно переопределить Единицу (DCU) и Выходной Каталог EXE из msbuild командной строки с/p:DCU_DcuOutput =. Обратите внимание, что я посмотрел на XML в своих файлах DPROJ, чтобы выяснить, как переопределить материал.
Однако это только делает делание, не сборку, и/t:rebuild не работает (редактирование: да это делает. это хорошо работает на файлах DPROJ, но не на GroupProjects.)
Мне жаль, что не было большего количества документации MSBuild с Delphi там нигде? Справка MSBuild в документации по продукту "рада Studio 2010" показывает одну или две вещи о MSBuild, но является действительно поверхностной и неполной.
Связанные вопросы:
Отвечаю на ваши вопросы: 1) «Как я делаю это задание» необходимо создать новую цель из меню проекта в моем случае я использую две разные цели для игры iPhone (обычная и бесплатная (lite) версия)
so I created a second Target of Type Application
this will add a Target to the Groups & Files panel
and will create a new Info.plist file
in the Group&File you can show more columns (by right clicking)
on "Group&Files"), here you have to show the "Target Memebership column"
for each file you can decide if it is part of a target by pressing the
corresponding check box
2) «а как же части кодов» Я не знаю, содержит ли текущая бета-версия SDK, используемая для разработки приложений iPad, некоторые # define, которые вы могли бы протестировать во время компиляции в каждом случае можно задать некоторые выделенные # define на целевом уровне и проверить это, чтобы сделать некоторую условную компиляцию
вы можете найти очень подробную информацию о построении приложений с несколькими целями в выделенной документации по яблокам вы можете загрузить его из iPhone Dev Center вы должны прочитать это руководство «Руководство по управлению проектом Xcode»
-121--4378552-для загрузки титульной страницы в UIWebView можно использовать:
myNavigationBar.title = [myWebView stringByEvaluatingJavaScriptFromString:@"document.title"];
Если вы хотите вернуться назад, это можно сделать:
if ([myWebView canGoBack]){
[myWebView goBack];
}
Чтобы узнать, загрузил ли пользователь новую страницу, необходимо установить UIWebViewDelegate. Для получения дополнительной информации см. Ссылка на класс UIWebView и Ссылка на протокол UIWebViewDelegate
-121--2607827-Delphi 2010 использует MSBuild в качестве основного Это означает, что среда IDE и командная строка выполняют одно и то же. Это также означает, что существующие проекты можно легко построить с помощью командной строки. На самом деле, мы в команде Delphi все время делаем эту точную вещь. Вам не нужно беспокоиться о коммутаторах для самого компилятора - файл DProj, созданный IDE, будет
В меню «Пуск» находится командная строка для использования MSBuild с существующим проектом Delphi. Он правильно настраивает среду так, что вы можете просто вызвать:
msbuild myproject.dproj
Вы также можете вызвать определенные конфигурации сборки из командной строки, используя IDE, чтобы легко создать эти конфигурации с помощью параметров командной строки для MSBuild.
Если требуется создать среду самостоятельно, можно запустить пакетный файл rsvars.bat для настройки. Этот файл находится в каталоге\bin и должен быть доступен в командной строке по умолчанию.
Файл содержит следующее:
@SET BDS=<your BDS directory>
@SET BDSCOMMONDIR=C:\Users\Public\Documents\RAD Studio\7.0
@SET FrameworkDir=C:\Windows\Microsoft.NET\Framework\v2.0.50727
@SET FrameworkVersion=v2.0.50727
@SET FrameworkSDKDir=
@SET PATH=%FrameworkDir%;%FrameworkSDKDir%;%PATH%
@SET LANGDIR=EN
Таким образом, если вы хотите создать собственную сборку непрерывной интеграции, вы можете легко управлять построением Delphi с помощью MSBuild.
Первое, что нужно понимать, это то, что Erlang был построен, чтобы иметь дело с асинхронной передачей сообщений. Таким образом, единственным способом передачи синхронного сообщения является реализация чего-то сродни подтверждению.
Представьте себе два процесса: P1 и P2. P1 может запустить следующий код:
%% process P1 takes the Pid of P2 as a parameter
%% and a Message to pass on to P2
p1(P2, Message) ->
P2 ! {self(), Message},
receive
{P2, ok}
after 5000 -> % this section is optional, times out after 5s
exit("P2 didn't process this!") % this kills P1
end.
P2, на его стороне может просто выполнить следующее:
p2() ->
receive
{From, Message} ->
io:format("P2 received message ~p~n",[Message]),
%% processing is done!
From ! {self(), ok}
end.
Поэтому вы можете создать p2 как новый процесс. Этот будет сидеть в ожидании любого сообщения. При вызове p1 он отправляет P2 сообщение, которое затем обрабатывает его ( io: format/2
) и отвечает на P1. Поскольку P1 ждал ответа, в этом процессе не был запущен дополнительный код.
Это основной и единственный способ реализации блокировки вызовов. Предложения по использованию сервера gen _: call
примерно реализуют то, что я только что показал. Но это скрыто от программиста.
Это просто: используйте
extern const std::string FOO;
в заголовке и
const std::string FOO("foo");
в соответствующем файле .cpp
.
Файлы dproj и groupproj являются файлами msbuild и в них можно заглянуть. Другие части информации находятся в пути установки msbuild (C :\WINDOWS\Microsoft.NET\Framework\v2.0.50727). Там вы найдете несколько файлов Borland. * .targets.
В сценариях msbuild можно увидеть различные конечные объекты с именем. Например, файл группы содержит целевые объекты Make, Clean и Build, которые можно указать с помощью параметра/t. То же самое касается файлов dproj. Файлы dproj также имеют целевой объект ReBuild. Он делает Clean, а затем Build. Если вы хотите иметь тот же эффект для файла группы, вы можете указать две цели :/t: Clean; Build
Вы также найдете много параметров, которые вы можете задать с/p. Как, например, Конфигурация, чтобы указать конфигурацию, или DCC_Quiet, чтобы дать команду dcc32 прекратить вывод бесполезных пробелов.
Поэтому построение с конфигурацией Release из командной строки:
msbuild mygroup.groupproj /p:Configuration=Release /t:Build
отказ от ответственности: Я просмотрел файлы msbuild Delphi 2007. Более поздние версии Delphi могли изменить имя целевых объектов или параметров. Просто загляните внутрь скриптов msbuild, чтобы узнать, что именно.
Я не уверен, что это то, что вам нужно, но у меня есть настройка CruiseControl.NET для непрерывной работы интеграция - и тесты DUnit - для Delphi 2009. CCNET имеет определенный набор задач для MSBuild, и, кроме нескольких проблем с настройкой, у меня он отлично работает.
Я могу сообщить вам, что мне нужно было сделать, чтобы они заработали, если вам нужно.
Марк