我有两个MVC 3 Web项目,一个用于移动应用程序,另一个是常规桌面Web应用程序,最后添加的是移动应用程序,我有一个构建定义,每次我签入代码时都会部署(门控办理登机手续)。
我的问题是,由于我添加了移动设备,构建定义将该项目作为默认设置,因此我想知道是否可以指定“默认Web项目”,在这种情况下我想要部署桌面版而不是移动版。
我想知道是否可以从构建参数中指定,配置如下:
/ p:Configuration = Dev / p:Platform =“Any CPU”/ p:DeployOnBuild = true / p:DeployTarget = MSDeployPublish / p:MSDeployPublishMethod = WMSVC / p:MsDeployServiceUrl = https:// IP:Port / msdeploy .axd / p:username = xxx / p:password = xxx / p:AllowUntrustedCertificate = True / p:DeployIisAppPath = Path
在“要构建的项目”选项中,我有项目的解决方案(sln文件)
任何想法?
答案 0 :(得分:1)
不是将其他属性添加到MSBuild命令行,而是编辑项目文件并在项目文件中设置属性。如果需要,请创建一个特定的配置以将它们放入,以便在Visual Studio中不总是发生部署。
<PropertyGroup Condition="'$(BuildingInsideVisualStudio)' == false">
<DeployOnBuild>true</DeployOnBuild>
<MSDeployTarget>MSDeployPublish</MSDeployTarget>
....
....
</PropertyGroup>
这样项目文件将知道何时部署。如果需要,您可以将这些项目粘贴到已经存在的Dev | AnyCPU PropertyGroup中,但这样它将始终在Visual Studio中构建。
为了能够通过命令行触发部署,您必须确保每个项目都侦听自己的命令行参数。
<PropertyGroup Condition="'$(BuildingInsideVisualStudio)' == false">
<DeployOnBuild Condition="'$(DeployDefaultWebsiteOnBuild)' == 'true'>true</DeployOnBuild>
<MSDeployTarget>MSDeployPublish</MSDeployTarget>
....
....
</PropertyGroup>
正如您所看到的,我已经向DeployOnBuild添加了一个条件,如果DeployDefaultWebsiteOnBuild设置为true,它将设置为true。现在,您可以从命令行设置该属性。
/p:DeployDefaultWebsiteOnBuild=true