Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/292.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Installshield Limited Edition拒绝添加扩展WPF工具包程序集_C#_Wpf_Installshield - Fatal编程技术网

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

C# Installshield Limited Edition拒绝添加扩展WPF工具包程序集,c#,wpf,installshield,C#,Wpf,Installshield,我有幸使用了ISLE,现在我不得不在这里发布一个问题。哦,头痛 我曾尝试通过nuget和手动将扩展的WPF Tookit添加到我的应用程序中,但在ISLE构建安装程序时没有成功地将这些程序集包括在内。我在ISLE中进行了依赖项扫描,在这两种情况下,依赖项都存在 我正在使用TeamCity(v8.1.1)构建服务器来自动化构建。除了在包中不包含上述组件外,其他一切正常 我如何解决这个问题 更新#1 通过进一步的研究,似乎dev.box上的ISLE在构建服务器找到正确版本的同时发现了错误版本的log

我有幸使用了ISLE,现在我不得不在这里发布一个问题。哦,头痛

我曾尝试通过nuget和手动将扩展的WPF Tookit添加到我的应用程序中,但在ISLE构建安装程序时没有成功地将这些程序集包括在内。我在ISLE中进行了依赖项扫描,在这两种情况下,依赖项都存在

我正在使用TeamCity(v8.1.1)构建服务器来自动化构建。除了在包中不包含上述组件外,其他一切正常

我如何解决这个问题

更新#1

通过进一步的研究,似乎dev.box上的ISLE在构建服务器找到正确版本的同时发现了错误版本的log4net.dll


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

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


“轻松”按钮是一种错觉。

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

问题#1

首先,由于TypedInitializationException,我遇到了一个XamlParseException。无法加载程序集,并且在异常中记录了该程序集,该异常结果为log4net。log4net程序集位于文件夹中,但版本错误

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

第2期

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

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

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

现在,如果其中一个依赖项不可用、被锁定,或者在添加到输出时发生异常,导致该依赖项在该点停止并不再添加任何依赖项,那么ISLE是否会在内部中断。谁知道呢,但我敢肯定,如果您要发布第三方,并且只有第三方安装程序才能确保它首先正常工作,那么ISLEMicrosoft内部肯定存在一些缺陷

更新#1

在TeamCity服务器上第二次运行构建导致未再次添加扩展WPF工具包。因此,似乎岛安装程序是真的摇摇欲坠

第三期

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


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

我只是使用装配参考,考虑到构建顺序,我认为这应该是一项简单的任务。没有什么复杂或特别的。ISLE查找手册和nuget的所有其他参考资料。我可能不得不按建议去做,但我不想这样做。我希望在我的安装程序中反映出每一个应用程序。虽然我很欣赏这个答案,但最后一点我不能同意,因为VisualStudio一直都在做这种事情。只需看看发布功能。VisualStudio对我来说从来没有错过。如果它真的这样做了,将会有很多用户流失到PHP上。有一天,我将创建一个博客,链接到StackOverflow上的50个问题,其中有人不同意我的观点,然后6个月后,他们最终接受了答案,并留下了一条感谢我的评论。很抱歉,我只是从18年编写一千多个安装程序的经验中总结出来的。Chris您的答案可能是唯一可用的解决方案,因为ISLE已经从根本上被打破了,但是“简易按钮是一种错觉”是错误的,因为VS编译和运行、VS发布和MS部署都找到了正确的依赖项。以前的Windows安装程序也完成了这项工作。为什么岛上没有?为了解决这个问题,我添加了缺少的手动引用,但没有关闭依赖项扫描。“以前的Windows安装程序”不存在。您指的是创建Windows Installer数据库的Visual Studio安装和部署项目。我可以从经验中说,它也不总是有效的,当它不起作用时,你必须拼命战斗,告诉它停止“帮助”你。查找我的电子邮件并ping我。我很想就这一切与你进行深入的交谈。我已经给了你更好的答案。设置开发就是开发。开发就是需求、设计、施工、测试。依赖性分析是需求101。一旦知道了依赖项,您就可以决定如何部署它们:prereq可再发行、合并模块、私有部署、GAC、公共位置。这是设计101。没有任何工具会使这些问题变得复杂