none
Best process for determining dependencies. RRS feed

  • Question

  • I have a application most recently developed in VS 2010 that I have recompiled into VS 2012.  It is written for in VB, WPF.  It also uses Crystal Reports. The installation/deployment package in VS 2010 was done in the Microsoft Windows Installer. I am now seeking an alternative Installer.  I have looked at some alternatives, including the InstallShieldLE and Inno Setup variations. I have used Inno Setup in the distant past and like it.  However, as best I can determine, neither develops the list of the dlls, exe, and other system files required for the application.   Of course, the Windows Installer in VS 2010 provided this valuable service. I have tried One-touch, too.  It may know what files are required for deployment, but if so, I could not find it.

    I remember what seemed like a long time ago, I used Dependency Walker -- I think that was back in the VB3 or VB5 days and Windows Installer was not as good then as it was in VS 2010, and you needed it from time to time to fine-tune your list of files that were to be part of the deployment package.  (I have sold my application on-line since '95, have updated it since and moving towards doing so for touch-first, but we will see...)

    As near as I can tell, VS 2012 does not provide a list of files required for deployment. Am I wrong about that?  Is there some part of the VS 2012 package that can provide me a list of the files needed for deployment?  If not, are be back to using dependency walker to do that?  Is that the best way, now?  

    I am not sure what you are hearing from others, but for me, though I knew the Windows Installer was going away with the release of VS 2012, I thought for sure there would at least be the capability for dependency tracking within VS 2012 to support development of a list of the files needed for deployment. With that list, I could use any of the alternative installers to develop an install package.  Without it, I have little confidence in any.

    What is the best method for determining the files required for deployment, so that I can use that list with the installer of my choice with some level of confidence that it will work?

    Thanks


    Ralph

    Wednesday, January 23, 2013 1:11 AM

Answers


  • What is the best method, tool, or set of tools, for determining the files required for deployment, so that I can use that list with the installer of my choice with some level of confidence that it will work?

    I think you can use Depends.exe since late-bound dependencies will only appear at run time which means it hard to detect.

    Using merge module that contains the component and its dependencies if there is available.

    What's more, some third party tools provide similar feature as MSI setup. For example, Wix installer has a tool name heat.exe.

    I'm not familiar with Install Shield and InnoSetup, you may contact them to see if they provide anything similar.

    Best Regards,


    Bob Wu
    MSDN Community Support | Feedback to us
    Develop and promote your apps in Windows Store
    Please remember to mark the replies as answers if they help and unmark them if they provide no help.

    • Marked as answer by RCubed3 Friday, January 25, 2013 3:33 PM
    Friday, January 25, 2013 9:32 AM
    Moderator

All replies

  • Hi Ralph,

    Windows installer deployment is a deployment technology. We use InstallShield, wix installer, visual studio installer or other tools to implement Windows Installer deployment. It is true that Visual Studio Installer(Visual Studio setup projects,MSI setup) is no longer supported in Visual Studio 2012.

    http://blogs.msdn.com/b/buckh/archive/2011/03/17/visual-studio-setup-projects-vdproj-will-not-ship-with-future-versions-of-vs.aspx 

    http://blogs.msdn.com/b/zainnab/archive/2012/06/05/visual-studio-2012-compatibility-aka-project-round-tripping.aspx

    I'm afraid that most dependency-checking tools, such as Depends.exe, will only find early-bound dependencies; late-bound dependencies will only appear at run time, see http://msdn.microsoft.com/en-us/library/12w3fhd2(v=vs.90).aspx

    Best Regards,


    Bob Wu
    MSDN Community Support | Feedback to us
    Develop and promote your apps in Windows Store
    Please remember to mark the replies as answers if they help and unmark them if they provide no help.

    Thursday, January 24, 2013 9:20 AM
    Moderator
  • Hi Bob,

    Thank you for the reply.

    I am happy for you have the resources available to you to be able to use InstallShield. Unfortunately, that is not the case for me. I am trying to work with InstallShield Limited Edition (the free edition) and InnoSetup at this time.

    I am aware that Visual Studio 2012 no longer supports MSI setup.

    I feel I can work with other technologies to accomplish Windows installer deployment, as you suggest. However, I do need Visual Studio 2012 to provide a list of the files my project depends on. As my application is developed, I need to have confidence that the list of supporting files is up-to-date so that my installation package will work.

    What is the best method, tool, or set of tools, for determining the files required for deployment, so that I can use that list with the installer of my choice with some level of confidence that it will work?


    Ralph

    Thursday, January 24, 2013 4:02 PM

  • What is the best method, tool, or set of tools, for determining the files required for deployment, so that I can use that list with the installer of my choice with some level of confidence that it will work?

    I think you can use Depends.exe since late-bound dependencies will only appear at run time which means it hard to detect.

    Using merge module that contains the component and its dependencies if there is available.

    What's more, some third party tools provide similar feature as MSI setup. For example, Wix installer has a tool name heat.exe.

    I'm not familiar with Install Shield and InnoSetup, you may contact them to see if they provide anything similar.

    Best Regards,


    Bob Wu
    MSDN Community Support | Feedback to us
    Develop and promote your apps in Windows Store
    Please remember to mark the replies as answers if they help and unmark them if they provide no help.

    • Marked as answer by RCubed3 Friday, January 25, 2013 3:33 PM
    Friday, January 25, 2013 9:32 AM
    Moderator
  • Thanks Bob. I will check out the third party tool you mentioned for determining project dependencies. If there are any others, please let me know.

    Ralph


    Ralph

    Friday, January 25, 2013 3:35 PM
  • Ralph,

    I am not familiar with the LE version of InstallShield. However, the full version of InstallShield does support static and dynamic file scanning as you import the files into your project.

    The static scan effectively takes the place of depends and will automatically show what merge modules you should include to satisfy the requirements.

    Again, I do not know if the LE version of InstallShield supports this. I would check with InstallShield to see if it does.

    Friday, January 25, 2013 9:04 PM
  • Thanks Dan,

    I had already checked this, and the LE version offers no file scanning to determine dependencies.

    Really unfortunate as my quest continues....

    If only VS 2012 would tell us the dependencies, life would be much better.  It must know them to implement one-touch, just list them somewhere, please!

    Ralph


    Ralph

    Friday, January 25, 2013 10:02 PM
  • Hi Ralph,

    You might consider to send a feedback to Visual Studio uservoice and they might bring back the setup project in Visual Studio 2012.

    http://visualstudio.uservoice.com/forums/121579-visual-studio/suggestions/3041773-bring-back-the-basic-setup-and-deployment-project-

    Best Regards,


    Bob Wu
    MSDN Community Support | Feedback to us
    Develop and promote your apps in Windows Store
    Please remember to mark the replies as answers if they help and unmark them if they provide no help.

    Monday, January 28, 2013 9:47 AM
    Moderator
  • Thanks, I did just that.


    Ralph

    Tuesday, January 29, 2013 6:32 PM
  • IMO the best practical ailternative is probably WiX, it's free, it comes with a support community, and there is Visual Studio IDE support.

    Dependencywalker.com has the depends program for C++ type dependencies. For NET, you should know what non NET assemblies you need, after all somebody added them as references.

    Same with COM - there are no direct references to COM Dlls in a code file, but if you instantiate them in code you're supposed to know what they are!


    Phil Wilson

    Tuesday, January 29, 2013 6:45 PM
    Moderator
  • With the help of Inno Script Studio and InnoScript 11 I was able to set up an installer for my VS 2010 application, which is written in VB with WPF and uses Crystal Reports.  Tested it on clean Windows 7, Vista, and XP virtual machines for install and uninstall.  I think I am good to go for my existing application.  Next will see if I can get it to work with VS 2012 with updated Crystal Reports.

    Ralph

    Friday, February 1, 2013 7:40 PM
  • With the help of Inno Script Studio and InnoScript 11 I was able to set up an installer for my VS 2010 application, which is written in VB with WPF and uses Crystal Reports.  Tested it on clean Windows 7, Vista, and XP virtual machines for install and uninstall.  I think I am good to go for my existing application.  Next will see if I can get it to work with VS 2012 with updated Crystal Reports.

    Ralph


    How does that help with dependencies? Surely you still need to know what they?

    Phil Wilson

    Monday, February 4, 2013 8:56 PM
    Moderator