Installshield Limited Edition拒绝添加扩展WPF工具包程序集

时间:2014-03-09 19:39:05

标签: c# wpf installshield

我有幸使用ISLE,现在已经到了我必须在SO上发布问题的地步。哦,头疼。

我尝试通过nuget添加扩展WPF Tookit并手动添加到我的应用程序但是在构建安装程序时没有运气让ISLE包含这些程序集。我在ISLE中完成了依赖扫描,在这两种情况下都存在依赖关系。

我正在使用TeamCity(v8.1.1)构建服务器来自动构建。一切正常,但它不包括包中的上述组件。

如何解决这个问题?

更新#1

有了更多的研究,似乎ISLE就开发了。当构建服务器找到正确的版本时,框选择了错误版本的log4net.dll。

解决方法 - 清除“%temp%\ Temporary asp.net files”文件夹中找到的所有log4net.dll。

2 个答案:

答案 0 :(得分:1)

您可以通过关闭依赖项扫描来解决问题,并负责了解应用程序需要运行的内容以及部署它的最佳方式。动态安装创作从未完全奏效,它永远不会。当你考虑到所有不同类型的应用程序以及它们依赖它们的方式时,它就变得显而易见了。

简单按钮是一种幻觉。

答案 1 :(得分:0)

我不知道为什么ISLE有这些不一致和明显的逻辑问题,但是我已经解决了我的问题,尽管解决方案很不稳定。

问题#1

首先,由于TypedInitializationException,我遇到了XamlParseException。无法加载程序集,并且在Exception中记录了该程序集,结果证明是log4net。 log4net程序集在文件夹中,但它是错误的版本。

不知何故,ISLE在“%temp%\ ASP.NET Temporary files”文件夹中找到了此程序集的旧版本,并在程序包中使用了该版本。 清除所有这些文件并让ISLE别无选择,只能使用您提供的程序集。注意:如果在一个或多个已安装的应用程序的文件夹中找不到gungho并删除罪魁祸首程序集 - 它可能会停止工作

问题#2

我意识到不仅扩展WPF工具包,而且安装目录中缺少依赖控制台应用程序的输出。

您可能希望ISLE找到所有依赖项,但它不会

根据@@ Christopher Painter提供的建议,我手动添加了控制台应用程序依赖项的主要输出。我希望这可以解决控制台依赖问题,但结果却解决了这两个问题。

现在,如果其中一个依赖项不可用,已锁定或在添加到输出时发生某些异常导致它在此时停止并且不再添加任何依赖项,则ISLE会在内部进行中断。谁知道,但我确信ISLE Microsoft中存在一些缺陷,如果您要发送第三方并且只有第三方安装程序确保它首先正常运行

更新#1

在TeamCity服务器上第二次运行构建导致不再添加扩展WPF工具包。所以ISLE安装程序似乎又摇摇欲坠。

问题#3

解决缺少的扩展WPF工具包程序集的另一个选择是将其显式添加为依赖项。然而,ISLE为这些文件添加了显式而非相对的路径位置,这意味着您需要在构建服务器上重新创建文件夹结构(不好)。

如果有人有更好的解决方案,我很乐意听到。此请求也适用于Flexera Software,希望答案不是升级到PRO版本或支付费用。