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