【问题标题】:ClickOnce and mageUI adding custom file folder problemsClickOnce 和 mageUI 添加自定义文件夹问题
【发布时间】:2010-03-25 11:17:24
【问题描述】:

我做什么:通过 VS 或 msbuild(随便)发布 .Net 3.5 应用程序,现在我需要插入到已发布应用程序的单独目录中(模块 - 未添加为对项目的引用 - 我们的项目架构没有允许这个)。所以我将文件夹复制到发布的位置,然后运行 ​​magUI.exe 选择应用程序清单,然后问题就开始了。当我按下填充按钮时,它还会添加隐藏目录吗?所以我删除了目录,在我想保存清单文件之后,我得到了 “警告 MSB3110:程序集 'NAME.Shell.application.deploy' 的身份不匹配 'NAME.Shell.application',预期文件名:'NAME.Shell.application.application'”。

你有没有同样的问题,根据http://smartclient.codeplex.com/Project/Download/FileDownload.aspx?DownloadId=5060 应该很容易就像 1-2-3 但事实并非如此。

【问题讨论】:

    标签: deployment msbuild clickonce signing


    【解决方案1】:

    具有讽刺意味的是,我目前正在为 .NET 4.0 的 ClickOnce 部署更新 SCSF 文档,现在我确切地知道它的问题所在。

    首先,您要发布到磁盘位置,而不是直接发布到网络服务器。这样做,然后将要添加到部署中的 dll 复制到带有应用程序清单 (.manifest) 的版本文件夹中。自己重命名它们 - 只需在末尾添加 .deploy。

    调出 MageUI 并打开该文件夹中的应用程序清单,然后取消选中“将 .deploy 添加到文件名”框。点击“填充”。

    然后从列表中删除部署清单;它被称为 appname.application 之类的东西。您不希望它包含在清单的文件列表中。

    现在您可以保存并签署应用程序清单。然后在不退出 mageUI 的情况下,打开根文件夹中的部署清单(不是版本文件夹中的那个)。单击“应用程序参考”,然后单击选择清单。深入到您刚刚签名的版本文件夹中的应用程序清单并选择它。然后只需保存并签署部署清单。它在其中放置了一个相对路径,因此如果您修改版本文件夹中的 .application 文件,它在部署时将无法正常工作。

    现在从根文件夹中取出 .application 文件并将其复制到版本文件夹中(替换那里的那个),这样您就有了该版本的正确副本,以备日后需要时使用。

    现在将整个 shebang 复制到网络服务器。它应该可以工作。

    【讨论】:

    • 谢谢!!!最后它按我预期的那样工作。现在我需要通过 msbuild 脚本执行此操作:) 让我们祈祷吧!!!:)
    • 我知道如何用 Mage 来做这件事,但没有搞乱 msbuild。祝你好运! :-)
    • 这个链接也帮助了我:blogs.msdn.com/b/vsto/archive/2009/04/29/…
    【解决方案2】:

    我认为您是在说您需要在 ClickOnce 部署中添加一个文件夹?你到底在添加什么?你说模块——它们会被编译进去,还是别的什么?

    如果你想将文件添加到你已经创建的部署中,你需要使用 MageUI 来编辑应用程序清单,它被称为 appname.exe.manifest。 (appname.application 实际上称为部署清单,虽然令人困惑但确实如此。)添加文件后,您还需要重新签署部署清单(假设您首先签署了它)。

    将您想要包含的内容添加到项目中并重新发布会更容易。根据它是什么,您可以将构建操作设置为“内容”(jpeg、html 等)或“无”(dll),然后将“复制到输出目录”设置为 true,它将包含在您的部署中.

    我不确定您所包含的确切内容。给我更多信息,我可以提供更具体的帮助。

    RobinDotNet

    【讨论】:

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