При использовании TeamCity для компиляции моего скрипта задачи MSBuild XML происходит сбой с этим:
[10:43:03]: myWebProject1\ myWebProject 1 .csproj (3s)
[10:43:07]: [ myWebProject1\ myWebProject1 .csproj] _CopyWebApplicationLegacy
[10:43:07]: [_CopyWebApplicationLegacy] Copy
[10:43:07]: [Copy] C:\Program Files\MSBuild\Microsoft\VisualStudio\v10.0\WebApplications\Microsoft.WebApplication.targets(131, 5): error MSB3021: Unable to copy file "obj\Release\myWebProject1.dll" to "C:\MSBUILDRELEASE\myWebProject1\\bin\myWebProject1.dll". Could not find file 'obj\Release\myWebProject1.dll'.
Когда я запускаю его локально, он работает.
Когда я сравниваю свой локальный вывод свывод моего сервера сборки, на моем сервере сборки отсутствуют файлы.Например, файл global.asax отсутствует в выходном каталоге моего сервера сборки (но не при локальной компиляции).Почему это так?
Вот мой текущий MSBuildScript:
<?xml version="1.0" encoding="utf-8"?>
<Project
xmlns="http://schemas.microsoft.com/developer/msbuild/2003"
ToolsVersion="4.0"
DefaultTargets="Build">
<PropertyGroup>
<OutputDir>C:\MSBUILDRELEASE</OutputDir>
</PropertyGroup>
<ItemGroup>
<ProjectToBuild Include="UtilityApp.sln" >
<Properties>OutputPath=$(OutputDir);Configuration=MSBuildRelease;Platform=x86</Properties>
</ProjectToBuild>
</ItemGroup>
<Target Name="Build">
<MSBuild Projects="@(ProjectToBuild)"/>
<CallTarget Targets="Publish WebProject1" />
<CallTarget Targets="Publish WebProject2" />
</Target>
<Target Name="Publish WebProject1">
<RemoveDir Directories="$(OutputFolder)"
ContinueOnError="true" />
<MSBuild Projects="WebProject1\WebProject1.csproj"
Targets="ResolveReferences;_CopyWebApplication"
Properties="WebProjectOutputDir=$(OutputDir)\WebProject1\;
OutDir=$(OutputDir)\WebProject1\;Configuration=Release;Platform=AnyCPU" />
</Target>
<Target Name="Publish WebProject2">
<RemoveDir Directories="$(OutputFolder)"
ContinueOnError="true" />
<MSBuild Projects="WebProject2\WebProject2.csproj"
Targets="ResolveReferences;_CopyWebApplication"
Properties="WebProjectOutputDir=$(OutputDir)\WebProject2\;
OutDir=$(OutputDir)\WebProject2\;Configuration=Release;Platform=AnyCPU" />
</Target>
</Project>
Я могу запустить этот скрипт локально, и он, кажется, работает нормально (без сгенерированных ошибок).Когда я запускаю его на своем сервере сборки, он завершается с ошибкой MSBuild MSB3021.
Теперь, когда я сравниваю свои локальные выходные файлы сборки с выходными файлами моей сборки сервера, на выходе сервера не так много файлов.Например, файл global.ASAX отсутствует в выводе на моем сервере сборки.Почему он будет работать локально для меня, но не на моем сервере сборки TeamCity?В чем разница и как я могу это исправить?
Я заметил, что сообщение об ошибке агента сборки TeamCity содержит забавный путь к каталогу: "C: \ MSBUILDRELEASE \ myWebProject1 \ bin \ myWebProject1.dll"
^ Перед папкой находится две косые черты.Я не указываю, что нигде.Что дает?У меня такое чувство, что я неправильно строю свои веб-проекты (может быть, используется другой подход к задаче?)Кажется, он работает локально, но не на моем сервере сборки.
Правильно ли я собираю свои веб-проекты?Это просто веб-проекты для развертывания веб-сервисов (ASMX).Помощь