Публикация профиля не работает при создании проекта сайта
Я понял что Web Deployment Projects
не поддерживаются в Visual Studio 2012
, Прочитав эту статью, я попытался получить Publish Profiles
работать.
После установки Visual Studio Web Publish Update я смог опубликовать проекты веб-сайтов и проекты веб-приложений с помощью нового диалога публикации в Visual Studio 2012
,
Потому что мы используем TFS 2010 Team Build
Я пытался использовать опубликовать профиль через MSBuild
параметры. Но следующее утверждение работает только для публикации проектов веб-приложений.
MSBuild.exe MyWebs.sln /p:Configuration=Release /p:DeployOnBuild=true;PublishProfile=DeployToDirectory.pubxml
Если я пытаюсь публиковать проекты сайтов, ничего не происходит. Профиль публикации проектов моего веб-сайта работает только с новым диалогом публикации в Visual Studio 2012
но не при звонке MSBuild
,
Любая идея?
2 ответа
Я провел около 3 недель, борясь с этим в моей собственной среде, и думаю, что у меня есть решение.
Я думаю, проблема в том, что файл website.publishproj фактически никогда не создается, когда вы передаете решение. Мне удалось решить эту проблему, выполнив следующие действия:
- Убедитесь, что вы используете новое обновление ASP.Net и Tools 2012.2. Скачать здесь.
Создайте файл рядом с файлом решения с именем after.MyWebs.sln.targets. Этот файл должен выглядеть следующим образом:
<!--?xml version="1.0" encoding="utf-8"?--> <Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> <Target Name="Deploy Website" AfterTargets="Build"> <Message Text="Starting Website deployment" Importance="high"> </Message> <MSBuild Projects="$(MSBuildProjectDirectory)\MyWebs\website.publishproj" BuildInParallel="true" /> </Target> </Project>
Это означает, что когда MSBuild начинает создавать файл решения, он фактически создает файл MSBuild в памяти с расширением metaproj. Есть способы заставить MSBuild сохранить этот файл на диск, чтобы вы могли проверить его, но это легко найти в Google. Файл, созданный на первом этапе, внедряется в файл metaproj и запускается после сборки.
Это был единственный способ получить новые профили публикации, чтобы получить вывод, который я использовал для получения старых веб-проектов развертывания.
Слово предупреждения: если вы хотите использовать это в сборке TFS, то в этом сценарии вы получите папку _PublishedWebsites в месте размещения, не зависящем от PublishUrl, который вы указали в файле pubxml. Это то, что я пытаюсь решить, но пока без особой радости.
У меня была та же проблема, что и выше. Я удалил следующий ключ, и автоматическая сборка начала работать нормально.
**<Content Include="website.publishproj" />**