Msbuild 在msdeploy中指定项目名称

Msbuild 在msdeploy中指定项目名称,msbuild,command-line-arguments,msdeploy,Msbuild,Command Line Arguments,Msdeploy,我在一个解决方案中有两个web项目,我希望使用msbuild和WebDeploy部署它们(这是通过CI服务器实现的) 目前,我正在运行一个命令行: C:\ProjectFolder>msbuild <solution>.sln /p:Configuration=<Release> /p:OutputPath=bin /p:DeployOnBuild=True /p:DeployTarget=MSDeployPublish /p

我在一个解决方案中有两个web项目,我希望使用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
C:\ProjectFolder>msbuild.sln
/p:配置=
/p:OutputPath=bin
/p:DeployOnBuild=True
/p:DeployTarget=MSDeployPublish
/p:MsDeployServiceUrl=https:///msdeploy.axd
/p:用户名=
/p:密码=
/p:AllowUntrustedCertificate=True
/p:部署路径=
/p:MSDeployPublishMethod=WMSVC
正如预期的那样,这将部署一个项目。但是我如何部署另一个呢?这个命令行中没有我指定项目名称的地方-为什么它选择一个项目来部署另一个

理想情况下,我可以使用相同的命令部署两个项目,比如

...

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

但我怀疑这是可能的。或者,我只想知道如何在命令行中指定项目名称。

如果从项目的根文件夹运行命令行,并且没有指定要生成的文件,msbuild应该自动选择该文件夹中的项目

这将需要两个单独的命令行调用tho

然后,您可以在此基础上构建一个批处理文件,该批处理文件依次发送到每个文件夹并分别运行msbuild,或者为触发每个生成的msbuild构建您自己的proj文件


对不起,我现在不能在手机上制作一个例子

我认为最好将单个呼叫分成三个:
-建设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
msbuild.exe.sln
/p:配置=
/p:OutputPath=bin
msbuild.exe project1dir\proj1.csproj
/p:配置=
/输出路径=
/p:DeployOnBuild=True
/p:DeployTarget=MSDeployPublish
/p:MsDeployServiceUrl=https:///msdeploy.axd
/p:用户名=
/p:密码=
/p:AllowUntrustedCertificate=True
/p:deployiisappath=/Project1
/p:MSDeployPublishMethod=WMSVC
msbuild.exe project1dir\proj2.csproj
/p:配置=
/输出路径=
/p:DeployOnBuild=True
/p:DeployTarget=MSDeployPublish
/p:MsDeployServiceUrl=https:///msdeploy.axd
/p:用户名=
/p:密码=
/p:AllowUntrustedCertificate=True
/p:deployiisappath=/Project2
/p:MSDeployPublishMethod=WMSVC

对。我缺少的部分实际上是用项目名而不是解决方案调用msbuild-谢谢您的帮助!