msdeploy v2不适用于vs2010的软件包

时间:2011-07-06 10:42:39

标签: msdeploy web-deployment-project

我安装了v1的msdeploy,我卸载它来安装v2。 现在我的vs2010软件包在运行deploy.cmd时失败了,因为它找不到注册表项 - 即使我已经创建了一个指向v2路径的MSDeployPath环境变量?

我在“我的电脑/属性”下的“高级系统设置/环境变量”中将MSDeployPath设置为“C:\ Program Files \ IIS \ Microsoft Web Deploy V2”。

运行VS2010 deploy.cmd文件时出现的错误是: Files \ IIS \ Microsoft目前是意料之外的。

任何人都知道如何解决这个问题? vs2010软件包的deploy.cmd在注册表中查找/。

那么如果路径变量不起作用,如何更改它以查找/ 2

2 个答案:

答案 0 :(得分:4)

编辑.cmd文件以查找正确的注册表路径。 / 2而不是/ 1。

我的理解是TFS 2010 sp1解决了这个问题。

SP1前版本的cmd文件中的行如下所示:

for /F "usebackq tokens=2*" %%i  in (`reg query "HKLM\SOFTWARE\Microsoft\IIS Extensions\MSDeploy\1" /v InstallPath`) do (

发布SP1,看起来像这样

for /F "usebackq tokens=1,2,*" %%h  in (`reg query "HKLM\SOFTWARE\Microsoft\IIS Extensions\MSDeploy" /s  ^| findstr -i "InstallPath"`) do (

答案 1 :(得分:0)

当我尝试使用由MSbuild创建的包下的bath文件部署网站时,我也遇到了同样的问题。唯一不同的是我正在远程执行。这就是我将该任务分配给我的构建服务器,一旦构建成功,它就会执行命令

    MVC-Client.deploy.cmd /y /M:es-websrv01

虽然设置参数xml可用,但它会抱怨它是意外的。通常它说远程Web部署我们不需要管理员权限。(在我的情况下,构建服务器运行时没有管理员权限)。然后我远程登录到构建服务器机器,然后使用命令行尝试手动部署。但最终遇到相同的问题。然后我尝试只是将包复制到桌面,然后进行远程部署。它已成功传输文件到目标IIS位置。

构建服务器尝试部署的位置:C:\ Program Files(x86)\ Jenkins \ jobs \ Exile-LibrarySystem \ workspace \ Exile-LibrarySystem \ Exile-LibrarySystem \ obj \ Staging \封装

我认为,由于此文件夹具有限制访问权限,因此无法执行操作。否则,当我尝试在构建服务器计算机中的桌面中进行部署时,我应该最终遇到相同的问题。是否有任何工作可以在构建服务器位置完成此部署作业?

由于