Как выполнить ту же функциональность, что и публикация в visual studio из powershell
Я хочу знать, как публиковать из PowerShell так же, как я могу из Visual Studio.
при запуске Visual Studio с проектом MVC, например; затем щелкните правой кнопкой мыши на проекте и выберите "опубликовать"; появится диалоговое окно, которое вы заполните несколько параметров в нажмите Опубликовать снова. Это волшебным образом выталкивает ваш сайт, как и ожидалось. Он также создает файл для хранения этих параметров. имя_проекта.Издавать.XML.
этот файл является причиной, по которой я хочу иметь возможность использовать это точно так же. Существует несколько параметров, которыми можно управлять в powershell, чтобы переместить приложение на несколько сайтов с разными конфигурациями.
Я посмотрел на "MSBuild target: publish", который только производит (запуск из каталога, содержащего.csproj):
MSBUILD : error MSB1009: Project file does not exist.
Switch: target:publish
я попробовал "MSBuild projectfile target:publish", который производит:
MSBUILD : error MSB1008: Only one project can be specified.
Switch: target:build
Я также рассмотрел несколько вариантов msdeploy. Этого не может быть трудно!? Если вы можете щелкнуть правой кнопкой мыши в studio, есть что-то, что выполняет эту задачу.
Я начинаю задаваться вопросом, если это требует полной луны и отрезать голову курицы. (Я потратил на это много времени!)
**EDIT: я попробовал предложение ли:
msbuild target:publish Mvc.csproj
, который производит эта ошибка:
MSBUILD : error MSB1008: Only one project can be specified.
Switch: Mvc.csproj
For switch syntax, type "MSBuild /help"
**EDIT: из предложения Дэви я попытался:
msbuild target:publish Mvc.csproj
, который производит эта ошибка:
MSBUILD : error MSB1009: Project file does not exist.
Switch: target:publish=PassportHealth.PatientSimple.Mvc.csproj
Я тоже вернулся к документации для цели" опубликовать" (http://msdn.microsoft.com/en-us/library/ms165431.aspx), который кажется довольно ясным, что синтаксис:
msbuild target:publish
Итак, после перечитывания этого несколько раз мой вывод таков: цель публикации-для развертывания одним щелчком мыши .exe-файлы, а не веб-сайты MVC. Я нашел ... http://weblogs.asp.net/scottgu/archive/2010/09/13/automating-deployment-with-microsoft-web-deploy.aspx что говорит об этом дело довольно ясное. Я не вижу, как использовать "публикацию".xml " файл в этом через команду msdeploy все же.
1 ответов
имя_проекта.издавать.xml-файлы используются только через Visual Studio для публикации одним щелчком мыши. Для MSBuild вам нужно передать кучу параметров непосредственно в командной строке (/p: Param1=value1; Param2=value2;...). Например:
/p:DeployOnBuild=True /p:DeployTarget=MsDeployPublish /p:CreatePackageOnPublish=True /p:MSDeployPublishMethod=InProc /p:MSDeployServiceUrl=localhost /p:DeployIisAppPath="Default Web Site/NewOrleansJazz" /p:UserName=domain\user /p:Password=myPassword
(источник)
обратите внимание, что в предварительном просмотре VS11 (выпущенном на конференции сборки) есть новый файл, заменяющий имя проекта.издавать.XML-код: MyPublishSettings.pubxml. Этот файл в основном представляет собой комбинацию публикации.xml-файл и имя проекта.АС ТПП.цели свернуты в один (но также разделены для каждого профиля вместо того, чтобы все они были сохранены в публикации.XML, например, файл testsettings.pubxml, ProductionSettings.pubxml), и может использоваться из командной строки проще, используя msbuild MyProject.csproj /t:WebPublish /p:PublishProfile="myProfile"
[edit:] пара заметок re: информация в вашем посте:
- ошибка при указании только одного проекта, вероятно, связана с неправильным указанием цели. Другие, чем имя проекта, все параметры, переданные msbuild, начинаются с
/
, например,/t[arget]:foo /p[roperty]:var=value
- цель публикации фактически не связана с веб-публикацией. IIRC, это связано с публикацией приложения OneClick. В VS2010, вы должны использовать
/t:build /p:DeployOnBuild=true
для веб-проектов использовать задачи публикации (как указано выше). Новое в VS11-это/t:WebPublish
, который также принимает более простой набор параметров, а именно .pubxml файл, который вы хотите использовать.- дополнительное Примечание: при построении решения файл
/t:WebPublish
будет выполнена, а цель не определена на уровне решения. Он может использоваться только непосредственно в файле проекта для вашего веб-проекта. Вы все еще можете использовать/p:DeployOnBuild=true
на уровне решения, поскольку значение параметра передается каждому строящемуся проекту, но будет игнорироваться любыми проектами, не потребляющими это значение.
- дополнительное Примечание: при построении решения файл