【问题标题】:How to automatically rename the "Application Files" folder in a ClickOnce deployment如何在 ClickOnce 部署中自动重命名“应用程序文件”文件夹
【发布时间】:2009-05-27 16:37:41
【问题描述】:

我们目前正在使用 Visual Studio 构建 ClickOnce 部署包,但我们想重命名“应用程序文件”,因为我们使用的网络服务器不支持空格。

我们发现直接进入.application文件可以修改指向的路径,也可以手动重命名文件夹。

有没有人知道一种自动化的方法,无论是使用 MageUI 还是任何其他实用程序?将一个批处理脚本放在一起为我们进行更改是很诱人的。部署也使用未签名的文件,因为我们不需要担心证书(它只是一个内部应用程序)

【问题讨论】:

  • 你是如何做到这一点的?当我重命名文件夹时(App Engine 和空格存在错误!),我收到以下错误:+ 清单 XML 签名无效。 + 对象的数字签名未验证。
  • 不确定您是否在使用 App Engine(因为您提到不支持空格),但我通过 URLEncoding 处理程序 url 让我的空间巧妙地使用:- url: /app/Application% 20Files static_dir:应用程序/应用程序文件
  • 您需要在清单文件上禁用签名生成。您说得对,我正在使用 AppEngine,并且添加更多处理程序 URL 似乎确实有效。 code.google.com/p/googleappengine/issues/detail?id=2525有更多详情

标签: visual-studio clickonce


【解决方案1】:

由于似乎没有人知道这个问题的答案,我自己找到了一种方法。我创建了一个 powershell 脚本。请注意,这仅适用于未签名的清单。

gci -Recurse -include *.application | ForEach-Object { [System.IO.File]::WriteAllLines($_.FullName, [System.IO.File]::ReadAllText($_.FullName).Replace("Application Files", "ApplicationFiles")) }
gci -recurse | Where {$_.psIsContainer -eq $true} | Where {$_.Name -eq "Application Files"} | ForEach-Object { $_.MoveTo($_.FullName.Replace("Application Files", "ApplicationFiles")) }

我的 powershell 并不出色,所以可能有更好的方法,但这就是我想出的

【讨论】:

    【解决方案2】:

    首先,手动尝试。

    将应用程序发布到文件夹(将发布位置设置为 C:\publish 等,并正确设置安装 URL,例如 http://myserver/myapp/)。

    然后进去把 Application Files 重命名为 ApplicationFiles in C:\publish。

    转到 C:\publish\ApplicationFiles\yourapp_a_b_c_d\ 文件夹并删除 yourapp.application。 (相信我,如果你不这样做,当你重新添加文件时,mageui 会崩溃)。

    运行 MageUI(它位于 c:\program files\microsoft sdks\windows\v7.0a\bin 或 v6.0a\bin 中,具体取决于您运行的 VS 版本)。

    在 MageUI 中,单击打开,查找 c:\publish\ApplicationFiles\yourapp_a_b_c_d\yourapp.exe.manifest 并打开它(其中 a_b_c_d 是您的版本,yourapp 是您的应用程序名称)。

    您应该会看到名称和内容。单击文件。确保选中“填充时添加部署扩展...”,然后单击“填充”(尽管想到它,所有都应该具有该扩展,除非您在 VS 中更改它)。这会将文件夹中的所有文件添加到应用程序清单/

    保存并签署应用程序清单。

    然后再次单击打开,打开 c:\publish\yourapp.application。

    单击“应用程序参考”。在右侧,单击选择清单。浏览到您刚刚编辑的那个 (C:\publish\ApplicationFiles\yourapp_a_b_c_d\yourapp.exe.manifest)。这会更新部署清单,以便它可以在正确的应用程序清单中找到文件列表。保存并签署部署清单 (yourapp.application)。

    将文件夹复制到网络服务器,它应该可以工作。

    现在,如果这对您有用,您可以用 Mage 命令替换 mageui 的东西,并且可能执行一些简单的脚本来将文件复制到新文件夹或将“应用程序文件”重命名为“应用程序文件”。

    如果您需要,我可以为您提供法师命令。

    【讨论】:

      猜你喜欢
      • 2011-05-22
      • 2022-01-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-02-11
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多