3

A dependency is not been resolved in InstallShield.

My environment is VS 2010 and InstallShield Limited Edition. I have a project that I’m trying to deploy using an InstallShield Limited Edition project. The project to deploy has several references added via 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>

In the Setup project I added the primary output of the project (Step 2 Specify Application Data / Files). All dependencies are added (right click on the primary output -> dependencies from scan at build) except one. The Quartz.dll is missing from that list and from the files that are installed.

How can I fix this so all dependencies are resolved and added to the setup?

I don’t want to add the Quartz.dll manually because its location will change when a new version is available via NuGet.

BTW: Quartz.dll is a project reference.

Christopher Painter
  • 54,556
  • 6
  • 63
  • 100
Oscar Fraxedas
  • 4,467
  • 3
  • 27
  • 32

1 Answers1

0

IMO, dependency analysis tools ( and other profiling tools ) are good for gaining datapoints in making your own analysis of how an application works and what it's runtime / deployment needs are.

Attempting to encapsulate this process with an automagical "easy" button isn't a good strategy.

If you know your code nees "quartz.dll" then confirm that:

1) It's redistributable 2) It's doesn't already have a deployment solution ( For example, System.Windows.Forms gets deployed by the .NET FRamework Install ) 3) Author it into your install manually if needed. 4) Turn off dependency scanning and repeat this process for all of your dependencies.

Is it more work then asking a piece of software to figure it out for you? Of course. Will it be more deterministic and reliable? Absolutely... and that's why we get paid the big bucks.

Christopher Painter
  • 54,556
  • 6
  • 63
  • 100
  • The problem is that only one dependency of my application is not been packaged in the resulting MSI. Right now the dependency that fails is Quartz, which is a simple dll, as the rest of the dependencies listed in the original question. I solved the problem by using a regular VS Setup project. Thanks anyways. – Oscar Fraxedas Jul 31 '12 at 02:24
  • 5
    _"Attempting to encapsulate this process with an automagical "easy" button isn't a good strategy."_ Except that it works fine with the original VS Setup and Deployment since VS 2005. ISLE is now the only option is VS 2012 and this "issue" (that never existed) is now "standard". – EdSF Apr 24 '13 at 00:33
  • I guess all those problems I had years ago didn't exist. BTW, ISLE is not the "only" option out there for VS2012. – Christopher Painter Apr 24 '13 at 01:04