Указание имени проекта в msdeploy - PullRequest
7 голосов
/ 22 февраля 2011

У меня есть два веб-проекта в одном решении, и я хотел бы развернуть их оба с помощью msbuild и WebDeploy (это происходит через CI-сервер).

В настоящее время я выполняю командустрока:

C:\ProjectFolder>msbuild <solution>.sln
    /p:Configuration=<Release>
    /p:OutputPath=bin
    /p:DeployOnBuild=True
    /p:DeployTarget=MSDeployPublish
    /p:MsDeployServiceUrl=https://<ServerUrl:port>/msdeploy.axd
    /p:username=<user>
    /p:password=<password>
    /p:AllowUntrustedCertificate=True
    /p:DeployIisAppPath=<SiteName>
    /p:MSDeployPublishMethod=WMSVC

Это развертывает один проект, как и ожидалось.Но как я могу развернуть и другого?В этой командной строке нет нигде, где я указывал имя проекта - почему он выбрал один проект для развертывания поверх другого?

В идеале я мог бы развернуть два проекта с одной и той же командой, что-то вроде

...

    /p:Project=Project1
    /p:DeployIisAppPath=<SiteName>/Project1
    /p:Project=Project2
    /p:DeployIisAppPath=<SiteName>/Project2

Но я сомневаюсь, что это возможно.Кроме того, я просто хочу знать, как указать имя проекта в командной строке.

Ответы [ 2 ]

15 голосов
/ 22 февраля 2011

Я думаю, что было бы лучше разделить один вызов на три:
- Build sln;
- Развернуть сайт1;
- Развернуть сайт2;

msbuild.exe <solution>.sln
    /p:Configuration=<Release>
    /p:OutputPath=bin

msbuild.exe project1dir\proj1.csproj
    /p:Configuration=<Release>
    /p:OutputPath=<Path to common bin>
    /p:DeployOnBuild=True
    /p:DeployTarget=MSDeployPublish
    /p:MsDeployServiceUrl=https://<ServerUrl:port>/msdeploy.axd
    /p:username=<user>
    /p:password=<password>
    /p:AllowUntrustedCertificate=True
    /p:DeployIisAppPath=<SiteName>/Project1
    /p:MSDeployPublishMethod=WMSVC

msbuild.exe project1dir\proj2.csproj
    /p:Configuration=<Release>
    /p:OutputPath=<Path to common bin>
    /p:DeployOnBuild=True
    /p:DeployTarget=MSDeployPublish
    /p:MsDeployServiceUrl=https://<ServerUrl:port>/msdeploy.axd
    /p:username=<user>
    /p:password=<password>
    /p:AllowUntrustedCertificate=True
    /p:DeployIisAppPath=<SiteName>/Project2
    /p:MSDeployPublishMethod=WMSVC
1 голос
/ 22 февраля 2011

Если вы запускаете командную строку из корневых папок проекта и не указываете файл для сборки, msbuild должен автоматически выбрать проект в этой папке.

Это потребует двух отдельных вызовов командной строки, хотя.

После этого вы можете создать этот пакетный файл, который по очереди создаст компакт-диск для каждой из папок и запустит msbuild отдельно, или же создаст собственный proj-файл для msbuild, который запускает каждую сборку.

Извините, я не могу создать пример на данный момент на телефоне!

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