MSBuild:Создание веб-сайтов asp.net 4.0:.metaproj -файлы
-
06-07-2019 - |
Вопрос
У меня есть файл решения с веб-сайтами ASP.NET.
Когда я создаю решение с помощью .NET 4.0 Beta 2, используя
"c:\WINDOWS\Microsoft.NET\Framework\v4.0.21006\MSBuild.exe" d:\MyPath\MySolution.sln
Все работает нормально, ошибок нет.Затем я пытаюсь создать то же решение с помощью задачи CruiseControl .NET (скрипт msbuild, запускаемый службой), то же решение терпит неудачу:
D:\MyPath\MyWebSite.metaproj (,):ошибкаMSB4025:Не удалось загрузить файл проекта.Не удалось найти файл «D:\MyPath\MyWebSite.metaproj».
Конечно, такого файла нет.Я предполагаю, что *.metaproj - это .csproj-подобный msbuild-файл, динамически создаваемый для веб-сайтов...
Но я не знаю, как исправить ошибку...Я пытался использовать метапроекты Google, но безуспешно.Я попытался создать файл вручную, я вставил <Project> с <Task Name="Rebuild">, и компиляция не вызвала никаких ошибок, но я думаю, что сайт не скомпилировался.
На одной и той же машине имеются проекты .NET 3.5 и .NET 4.0 и переменные среды для обеих платформ.
Решение 4
В финальной версии Visual Studio 2010 эта ошибка исправлена.
Другие советы
Это можно обойти, если избавиться от зависимостей проекта в файле решения.Вы можете сохранить зависимости проекта в файле проекта, но удалить их из файла решения.См. эту ссылку для этого
Отвечать.
У меня такая же проблема с сервером сборки tfs 2008.Как только я переключил конфигурацию сервера tfs builder на использование msbuild 4.0, у меня началась та же проблема.Если я запускаю msbuild вручную, все в порядке, и в журнале говорится, что он создает файл метапроекта, но в процессе автоматической сборки происходит сбой.
Расс
Я читал обсуждения CruiseControl и пытался запускать те же команды, что и CruiseControl.net, и решил свою проблему, переместив свой
Пробелы в именах каталогов приводят к сбою msbuild в режиме круиз-контроля!??
Поэтому каталоги Круиз-контроля даю явно без пробелов.Пример ниже.
<Project name="ProjectNameHere">
<workingDirectory>c:\dev\work\ProjectNameHere\WorkDir</workingDirectory>
<artifactDirectory>c:\dev\work\ProjectNameHere\Artifacts</artifactDirectory>
...
Сначала я создал my_website.metaproj рядом с my_solution.sln, который выглядел следующим образом:
<Project DefaultTargets="Test" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Target Name="Build">
<Message Text="Building...but nothing to build" />
</Target>
<Target Name="Test">
<Message Text="Testing...but nothing to test." />
</Target>
<Target Name="Clean">
<Message Text="Cleaning...but nothing to clean." />
</Target>
</Project>
Затем он пожаловался, что не находит sgen.exe.Я установил Visual Studio 2010 Beta 2 на агент сборки, и похоже, что теперь он работает.
Редактировать] Это на самом деле не сработало.Он не переносил зависимости проекта веб-сайта в каталог bin.
В итоге мы очистили процесс сборки обновления и переделали процесс сборки с использованием вариации стандартного шаблона.Это сработало нормально.
В VS2013 переключение с Шаблон по умолчанию к TfvcTemplate.12 у меня сработало!
Некоторая информация о TfvcTemplate.12 здесь http://blog.qetza.net/en/2013/10/03/new-features-in-team-build-2013/