大型解决方案ClickOnce分发

时间:2013-05-23 18:48:58

标签: visual-studio-2012 clickonce

我有一个更大的解决方案,我希望通过ClickOnce分发。它由一个主shell可执行文件组成,它只直接引用构成解决方案的一小部分库和进程。

该解决方案由一些其他进程和几个库(一些C++)组成。我需要能够在一个ClickOnce发行版中包含所有这些库和进程,以用于本地构建和TFS服务器构建。

我无法引用shell项目中的所有其他库和进程。我不希望将这些文件推送到MSI作为先决条件,因为它会破坏使用ClickOnce分发/更新产品的目的。

将所有必要的文件/项目合并到一个ClickOnce分发中的正确方法是什么?

3 个答案:

答案 0 :(得分:1)

IDE在发布时不会将本机DLL检测为依赖项,但您可以直接运行SDK工具以将其手动包含在ClickOnce分发中。您可以在构建后的脚本中使用mage.exe,也可以运行MageUI.exe来使用向导来指导您完成包的生成。

建议阅读:

答案 1 :(得分:0)

对于这种情况,Visual Studio有一种替代方法。您可以尝试使用Mage,但使用它可能有点棘手。我的公司写了一个名为ClickOnceMore的替代方案。

ClickOnceMore是一个ClickOnce构建工具,用于当您不想或不能使用Visual Studio进行ClickOnce构建时。

UI上有一个特定的页面用于包含文件(使用规则来包含从单个文件到整个目录树的任何内容),因此您应该能够完全满足您的需要。

答案 2 :(得分:0)

这是我在类似情况下所做的。我在工作中使用TFS,因此将这些术语转换为您可能使用(或不使用)的任何内容用于源代码控制。

我有一个主工作区,我用于我的应用程序的所有开发,我保持这个工作区原始。

然后我创建了另一个具有正确名称的工作区(例如:solution-deploy),在此工作区中我执行以下操作:

  1. 获取最新信息并将所有内容从源代码控制合并到部署工作区
  2. 我构建了我的应用程序的发布版本
  3. 我点击root(我把它们放在root中,因为我需要从那里访问它们,把它们放在你想要的任何文件夹中)我的部署项目的项目文件夹并选择“Add - > Existing Item” “
  4. 我在文件选择器中浏览到要添加到我的部署包的程序集的Release目录,选择它们,然后我使用Add按钮旁边的箭头并下拉到“Add As Link”,执行此操作对于要添加的所有程序集,并将它们放置在部署中的任何位置
  5. 在解决方案资源管理器中,选择添加的程序集,然后在“属性”窗口中将“构建操作”设置为“内容”,这应该是您应该做的所有事情,但其他人也必须将“复制到输出目录”设置为“永远复制”,我不这样做
  6. 运行发布版本
  7. 转到部署项目的“属性”视图
  8. 转到“发布”标签,然后单击“应用程序文件”按钮
  9. 您的文件应该全部可用并添加到部署
  10. 设置ClickOnce设置,但您需要
  11. 发布ClickOnce包
  12. 您发布的软件包应包含您现在需要的所有程序集。

    以这种方式设置单独的Deployment工作区,而不要将其签入。在开发工作区中完成工作。每当需要新部署时,在Deployment工作区中打开解决方案并获取最新代码,构建然后发布。