【问题标题】:A dependency is not been resolved in InstallShieldInstallShield 中未解决依赖关系
【发布时间】:2012-06-06 14:48:02
【问题描述】:

InstallShield 中未解决依赖关系。

我的环境是 VS 2010 和 InstallShield Limited Edition。 我有一个项目,我正在尝试使用 InstallShield Limited Edition 项目进行部署。 要部署的项目有几个通过 NuGet 添加的引用:

<packages>
  <package id="Common.Logging" version="2.0.0" />
  <package id="CsvHelper" version="1.4.0" />
  <package id="log4net" version="1.2.10" />
  <package id="NServiceBus" version="3.2.1" />
  <package id="NServiceBus.Host" version="3.2.1" />
  <package id="Quartz" version="2.0.1" />
</packages>

在安装项目中,我添加了项目的主要输出(第 2 步指定应用程序数据/文件)。添加所有依赖项(右键单击主要输出 -> 构建时扫描的依赖项),除了一个。该列表和已安装的文件中缺少 Quartz.dll。

我该如何解决这个问题,以便解决所有依赖项并将其添加到设置中?

我不想手动添加 Quartz.dll,因为当通过 NuGet 提供新版本时,它的位置会改变。

顺便说一句:Quartz.dll 是一个项目参考。

【问题讨论】:

  • Oscar - 正在努力将 NuGets 添加到设置中。可以帮助我吗?

标签: visual-studio-2010 nuget quartz.net installshield-le


【解决方案1】:

IMO、依赖分析工具(和其他分析工具)非常适合获取数据点,以便您自己分析应用程序的工作原理以及它的运行时/部署需求是什么。

试图用一个自动的“简单”按钮来封装这个过程并不是一个好策略。

如果您知道您的代码需要“quartz.dll”,请确认:

1) 它是可再分发的 2) 它还没有部署解决方案(例如, System.Windows.Forms 由 .NET FRamework Install 部署) 3) 如果需要,手动将其创作到您的安装中。 4) 关闭依赖扫描并对所有依赖重复此过程。

是不是比让一个软件帮你解决问题更费力?当然。它会更具确定性和可靠性吗?绝对......这就是为什么我们得到大笔报酬。

【讨论】:

  • 问题是我的应用程序只有一个依赖项没有被打包到生成的 MSI 中。现在失败的依赖项是 Quartz,它是一个简单的 dll,与原始问题中列出的其余依赖项一样。我通过使用常规的 VS Setup 项目解决了这个问题。无论如何,谢谢。
  • “试图用一个自动的“简单”按钮来封装这个过程并不是一个好策略。” 除了它与原始的 VS 设置和部署工作良好,因为 VS 2005. ISLE 现在是 VS 2012 的唯一选择,这个“问题”(从未存在)现在是“标准”。
  • 我猜我多年前遇到的所有这些问题都不存在。顺便说一句,ISLE 不是 VS2012 的“唯一”选项。
猜你喜欢
  • 2013-10-27
  • 1970-01-01
  • 2016-03-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多