ClickOnce:与主项目一起发布子项目

时间:2014-08-02 09:29:17

标签: c# deployment clickonce

我有一个包含2个项目的VS项目。一个是名为" main"这是一个可执行文件。第二个项目名为" main-ext"也是一个可执行文件,但它是第一个的扩展。它有"主要"作为参考,因为它使用了一些主要的类型。

我现在想点击" main"还包括" main-ext"。我已经成功设置了ClickOnce" main"。但是我不能包含" main-ext"生成的输出。在那个发布。

然后我发现你不知何故需要包含来自" main-ext"的文件。进入" main"的项目为了让ClickOnce部署它们。

现在,考虑到这一点,我尝试了以下内容:

  1. 添加" main-ext"作为" main"的参考。由于循环引用,这显然不起作用。
  2. 添加" main-ext"的输出EXE手动为"内容"使用"始终复制"到项目" main"。虽然这确实有效,但它有一个很大的问题。如果我应该删除输出文件(或运行Build> Clean),我将无法再获得构建解决方案。因为" main-ext"需要"主要"建立,"主要"需要输出" main-ext"建立。相同的循环引用,只是略有不同。
  3. 有什么想法吗?

    我尝试的下一步是重构" main"并移动所有常见的类型和事物," main"和" main-ext"分享,成为专门的第三个项目,一个类库。但由于该项目相当庞大而且复杂,我想将其作为最后的选择。

    感谢。

1 个答案:

答案 0 :(得分:0)

查看修改ClickOnce的清单。这个想法是:

  • Main不引用ext
  • 构建ClickOnce for main
  • 发布ClickOnce
  • ManifestManagerUtility中打开.application(我认为您可以使用ClickOnce API执行此操作)
  • 添加对main-ext的引用
  • 重新签署清单。

然后,您可以允许您的用户下载新版本。这两个文件都应安装在客户端的计算机上。

在Prism文档中查看this chapter,它包含对非常类似场景的逐步描述。