Переменные TFS 2010 и MSBuild пусты? - PullRequest
0 голосов
/ 26 августа 2011

мы разрабатываем веб-страницы на PHP, и мы должны использовать Visual Studio 2010 с Team Foundation Server 2010. Мы пытаемся создать простой «процесс сборки» на TFS, чтобы скопировать наши файлы php в папку drop.

Яusing: DefaultTemplate.xaml И создал свой собственный: simple_zip.proj для процесса MSBuild со следующим кодом:

<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
    <ItemGroup>
        <MySourceFiles Include="**\*.php"/>
    </ItemGroup>

    <Target Name="CopyFiles">
        <Copy SourceFiles="@(MySourceFiles)" DestinationFolder="c:\MyProject\Destination" />
        <Message Text="My Build Complete" />
    </Target>
</Project>

И это работает и копирует на сервер локальный путь.

Проблема в том, еслиЯ пытаюсь использовать любую из переменных MSBuild, которая не работает, например

Текст сообщения = "Моя сборка завершена - $ (BuildDir) - $ (TargetDir) - $ (BuildProjectFolderPath)>"

Мой текст отображается, но переменные пусты (я ищу файлы журнала уровня отладки процесса msbuild).

Также что-то из следующей ссылки, просто не работает. Настраиваемые цели построения Team Foundation

Итак, мой вопрос: как я могу получить все переменные пути (исходные каталоги, каталоги двоичных файлов, каталоги папок, номер сборки и другие из определения / шаблона сборки)на мой MSBuild на сервере TFS?

Спасибо. С уважением

1 Ответ

0 голосов
/ 27 августа 2011

Я не вижу, чтобы ваш проект импортировал какие-либо стандартные цели. Я делаю похожую вещь в одном из моих файлов проекта, и это выглядит примерно так:


<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
 <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
 <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
 <DeploymentDir>$(OutDir)\MySubFolder\</DeploymentDir>
</PropertyGroup>
<ItemGroup>
 <DeploymentContent Include="**\*.ps1" />
</ItemGroup>
<PropertyGroup>
 <DevDeploymentImageDir>$(DeploymentDir)Dev\</DevDeploymentImageDir>
</PropertyGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.Common.targets" />
<!-- Empty targets for this project since it just copies files from one location to another.-->
<Target Name="BeforeBuild"/>
<Target Name="CreateManifestResourceNames" />
<Target Name="CoreCompile" />
<Target Name="AfterBuild" >
  <MakeDir Directories="$(DeploymentDir)" />
  <MakeDir Directories="$(DevDeploymentImageDir)" />
  <Copy SourceFiles="@(DeploymentContent)" DestinationFolder="$(DevDeploymentImageDir)" />
</Target>

Еще одна хорошая вещь, которую стоит попробовать - включить более подробное ведение журнала MSBuild на вашем компьютере TFS (например, уровень 'diag'), чтобы вы могли видеть, как переменные MSBuild устанавливаются по ходу сборки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...