0

通过 Web 平台安装程序安装时,如何让runCommand 提供程序在 MS Deploy 包中工作?Manifest.xml

我正在尝试构建一个简单的测试 MS Web 部署包,可由 Web 平台安装程序通过自定义提要安装。我正在尝试在Manifest.xmlrunCommand文件中使用提供程序:

<?xml version="1.0" encoding="utf-8" ?>
<msDeploy.iisApp>
  <iisApp path="IISWSGISampleApp" />
  <runCommand path="set" />
</msDeploy.iisApp>

仅用于输出运行命令的set环境,但它不适用于任何数量的不同path 值。当我通过具有任何属性的 Web 平台安装程序安装包时,path我得到相同的错误:

[13:54:312]Source runCommand (set) does not match destination (set) differing in attributes (isSource). Update pending.
[13:54:315]Updating runCommand (set).
    Details:
    operationType: Update
    providerName: runCommand
    path: set
EXCEPTION: System.IO.FileNotFoundException: Could not find file '\\?\C:\Users\rpatterson\Documents\My Web Sites\IISWSGISampleApp'.
File name: '\\?\C:\Users\rpatterson\Documents\My Web Sites\IISWSGISampleApp'
...

如果我<runCommand>Manifest.xml. 我还确认C:\Users\rpatterson\Documents\My Web Sites\IISWSGISampleApp当 WebPI 显示错误时确实存在。另外,我发现\\?\样式路径是为了安全地引用 Windows 中的长路径,所以可能是长路径支持的某些部分被破坏了。

我在 Windows 7 Professional、Web Platform Installer 4.0 和 Web Matrix 2.0 RC 下执行所有这些操作,它们的 about 对话框显示:

Version 2.0 RC
WebMatrix: 7.1.1587.0
IIS Express: 8.0.8298.0
.NET Framework: 4.0.30319.17379 built by: FXBETAREL
Web Deploy: 7.1.1516.0
SQL Server Compact: 4.0.8854.1
Web Platform Installer: 7.1.1586.1
ASP.NET Web Pages: 2.0.20505.0
ASP.NET Web Pages: 1.0.20105.407

所有这一切背后的代码都在 GitHub 上的 IISWSGI 中使用此提交进行测试。要重现我正在使用的环境,请参阅IISWSGI 文档

4

2 回答 2

1

runCommand在能够重现错误之后,我曾经能够无错误地使用,除了一些组合机器重启并使用 WebPI 在两者之间安装应用程序之外什么都不做。经过进一步测试,我现在可以通过以下方式重现错误:

  • 重启机器
  • 使用 WebPI 安装应用程序
  • 退出 WebPI
  • 使用 WebPI 再次安装应用程序(无需重新启动)

然后,如果我重新启动机器,我可以使用 WebPI 再次安装应用程序。IOW,WebPI 似乎有一个错误,即如果不重新启动机器就无法启动两次。

于 2012-10-10T13:30:41.123 回答
0

尝试将您的set命令移动到.bat/.cmd并将其作为runCommand. 只要您不向文件传递任何参数,它就会包含在包中并在您将包同步到其他地方时运行。

于 2012-10-08T11:00:29.590 回答