【问题标题】:MS WebPI package runCommand not working in Manifest.xmlMS WebPI 包 runCommand 在 Manifest.xml 中不起作用
【发布时间】:2012-09-18 22:18:05
【问题描述】:

如何让runCommand providerManifest.xml 中工作 通过 Web 平台安装程序安装时的 MS Deploy 包?

我正在尝试构建一个可以通过以下方式安装的简单测试 MS Web Deploy 包 通过custom feed 安装Web 平台安装程序。我正在尝试使用 Manifest.xml 文件中的 runCommand 提供程序:

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

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

[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'
...

如果我从Manifest.xml 中删除&lt;runCommand&gt; 元素,它安装得很好。我还确认当 WebPI 显示错误时,C:\Users\rpatterson\Documents\My Web Sites\IISWSGISampleApp 确实存在。另外,我发现\\?\ 样式路径是针对safely referencing long paths in Windows 的,所以可能是长路径支持的某些部分被破坏了。

我在 Windows 7 Professional, Web Platform 下做这一切 安装程序 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

这一切背后的代码都在IISWSGI on GitHubuse this commit 中进行测试。重现 我正在使用的环境,请参阅IISWSGI documentation

【问题讨论】:

    标签: iis webmatrix msdeploy web-platform-installer


    【解决方案1】:

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

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

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

    【讨论】:

    • 我只是尝试再次执行此操作并以不同的顺序进行更新,但无法重现该问题。 IOW runCommand 仍然有效。所以这可能与应用更新的顺序有关。
    【解决方案2】:

    尝试将您的 set 命令移动到 .bat / .cmd 并将其引用为 runCommand 的路径。 As long as you pass no arguments to the file,它将包含在包中并在您将包同步到其他地方时运行。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-10-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多