msdeploy v2没有';t使用vs2010';s包

msdeploy v2没有';t使用vs2010';s包,msdeploy,web-deployment-project,Msdeploy,Web Deployment Project,我安装了msdeploy的v1,并卸载了它以安装v2。 现在,当我运行deploy.cmd时,我的vs2010包失败了,因为它找不到注册表项-即使我已经创建了一个指向v2路径的MSDeployPath环境变量 我已在“我的计算机/属性”下的“高级系统设置/环境变量”中将MSDeployPath设置为“C:\Program Files\IIS\Microsoft Web Deploy V2” 运行VS2010 deploy.cmd文件时出现的错误是: 此时意外出现文件\IIS\Microsoft

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

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

运行VS2010 deploy.cmd文件时出现的错误是: 此时意外出现文件\IIS\Microsoft

有人知道怎么解决这个问题吗?vs2010包的deploy.cmd在注册表中查找/1


那么,如果path变量不起作用,我如何将其更改为查找/2呢?编辑.cmd文件以查找正确的注册表路径/2而不是/1

我的理解是TFS2010 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 (

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

    MVC-Client.deploy.cmd /y /M:es-websrv01
虽然设置的参数xml可用,但它会抱怨这是意外的。通常它会说,对于远程web部署,我们不需要管理员权限。(在我的例子中,构建服务器运行时没有管理员权限)。然后,我远程登录到生成服务器计算机,然后使用命令行尝试手动执行部署。但最终出现相同问题。然后,我尝试将包复制到桌面,然后执行远程部署。已成功将文件传输到目标IIS位置

生成服务器尝试将其部署到部署的位置:C:\Program Files(x86)\Jenkins\jobs\Facive LibrarySystem\workspace\Facive LibrarySystem\Facive LibrarySystem\obj\Staging\Package

我认为,由于此文件夹的访问权限有限,它无法执行此操作。否则,当我尝试在生成服务器计算机的桌面上执行部署时,我应该会遇到相同的问题。在构建服务器位置,我可以在哪里完成此部署工作


谢谢

我已经安装了TFS 2010 SP1,并且.cmd文件仍在使用旧路径生成。TFS2010 SP1真的解决了这个问题吗?如果是这样,您是否必须重新启动服务器或重新启动服务?只是想知道,b/c我仍然有这个问题。在答案中添加了我在cmd文件中看到的确切差异。我所看到的一切都表明SP1确实解决了这个问题。如果您的SP1应用程序单独修复了deploy.cmd文件的输出,那么我不会得到相同的结果。我的deploy.cmd文件仍然指向(
reg query“HKLM\SOFTWARE\Microsoft\IIS Extensions\MSDeploy\1”/v InstallPath
)中的“/F”usebackq tokens=2*”%%i。这肯定是我这方面缺少的东西。谢谢。BNL,再问你一个问题。你的TFS服务器上安装了Visual Studio 2010吗?没有,只有TFS和Windows SDK。不要认为后者很重要。