2010-10-29 29 views
1

我开始使用Web部署来构建和部署Web应用程序。到目前为止,我可以构建一个包并进行部署,但这不仅仅是xcopy部署所能做的。创建Web Deploy程序包以设置.net版本并创建新网站

所以我的命令来构建包是这样的:

msbuild EMP.WebAdmin.csproj /T:Package /P:Configuration=Release;PackageLocation="D:\Packages\WebAdmin.zip";DeployIisAppPath="TestWebAdmin" 

如果TestWebAdmin已经存在和.net的版本已被设置为.NET 4中的一切似乎是罚款。但是,我真正想要做的是使用包检查来查看部署是否已经存在,如果不是创建它(最好是在一个已定义的目录中)并确保任何主机头设置正确。我是否要求太多的网络部署,我一直没能找到一篇好文章,谈论如何去做这种细节。

是我想要做的可能吗?

回答

0

项目的“发布/封装网站”选项卡上的设置是什么?您的网站需要使用IIS,并且您需要选中该框以包含IIS应用程序设置。另外,你如何部署?我的理解是,你使用的msbuild命令会构建这个包,但你在哪里调用msdeploy?

我没有msdeploy为我创建应用程序,但它正在运行Sql更新脚本我也包括在内。

+0

是的,我的网站使用IIS,但对于开发我使用开发服务器。包含IIS设置的复选框已禁用,是因为我正在使用开发服务器吗?对msdeploy的调用由msbuild完成,所以上面的命令是我用来创建包的。 – ilivewithian 2010-10-29 15:23:15

+0

对,我找到了,除非你真的将项目设置为使用IIS而不是开发服务,否则它不会选择IIS设置。我也在使用软件包目标,但只为我建立软件包。在我的nant构建脚本中,我稍后调用msdeploy来自动化部署到开发系统(呃,我可以,一旦我们有一个到位,但我已经测试了从构建服务器到我的笔记本电脑的自动部署,而且这确实有效) 。 – Andy 2010-10-29 17:20:53

0

您可以拨打WebDeploy直接以创建程序包并将其设置为一个生成后事件:

"%ProgramFiles%\IIS\Microsoft Web Deploy\msdeploy.exe" -source:iisApp="<physical path to your app>" -dest:package=d:\myApp.zip 

这样,你没有让自己的应用部署到IIS服务器,其实你不活动需要在盒子上安装IIS。