0

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

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

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

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

4

3 回答 3

1

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

推荐阅读:

于 2013-05-23T19:13:20.967 回答
0

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

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

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

于 2013-05-23T20:23:05.797 回答
0

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

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

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

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

您发布的包应该包含您现在需要的所有程序集。

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

于 2013-06-14T20:46:59.060 回答