我有一个更大的解决方案,我希望通过ClickOnce分发。它由一个主shell可执行文件组成,它只直接引用构成解决方案的一小部分库和进程。
该解决方案由一些其他进程和几个库(一些C++)组成。我需要能够在一个ClickOnce发行版中包含所有这些库和进程,以用于本地构建和TFS服务器构建。
我无法引用shell项目中的所有其他库和进程。我不希望将这些文件推送到MSI作为先决条件,因为它会破坏使用ClickOnce分发/更新产品的目的。
将所有必要的文件/项目合并到一个ClickOnce分发中的正确方法是什么?
答案 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),在此工作区中我执行以下操作:
您发布的软件包应包含您现在需要的所有程序集。
以这种方式设置单独的Deployment工作区,而不要将其签入。在开发工作区中完成工作。每当需要新部署时,在Deployment工作区中打开解决方案并获取最新代码,构建然后发布。