Hi,

I'm deploying a VB.NET application with Inno installer. In the past I've used the one Click installer but now require a setup with more options.

What needs to be included when deploying a VB.NET application (developed in VS 2010). I understand that the .NET Framework needs to be installed on the PC, but what else?

Also, where do you put the DLL's on the PC where the app is installed?

Thanks!

Daniel.

Dani AI

Generated

Short expert summary relevant to ’s question and the replies from and : include the .NET runtime your app targets, any native runtimes (Visual C++ redistributables) used by native DLLs, COM registration steps if you expose types to COM, your app data/config/resource files, and an uninstaller/shortcuts. The CLR’s assembly-resolution rules explain why “put DLLs next to the EXE” is the usual and simplest approach — the runtime probes the application base (and configured probing paths) after checking the GAC. (learn.microsoft.com)

Where DLLs belong (practical rules and exceptions): managed libraries used only by your app are best kept private in the application folder (or a private subfolder added via the <probing> privatePath). Only put assemblies in the GAC when they are truly shared and strong-named; avoid GAC unless you need machine-wide sharing because it complicates deployment. COM-visible .NET assemblies must be registered (Regasm) or installed with an appropriate codebase entry; unmanaged/native DLLs follow the Windows loader rules and usually belong next to the EXE or shipped via the VC++ redistributable. (learn.microsoft.com)

Inno Setup specifics to implement those rules: use the [Files] section to place managed and native files into {app} (the docs document flags like gacinstall, regserver and regtypelib if you need GAC install or COM registration). Use the [Run] section to run regasm, the VC++ redistributable or a .NET prerequisite installer as post-install steps. Detect the target .NET version (registry or built-in checks) and make the runtime a prerequisite instead of silently failing at launch. (jrsoftware.org)

Quick checklist / sanity tips (test on a clean VM):

  • Include the correct .NET redistributable or block the install when missing.
  • Include VC++ redist if native dependencies need it (x86 vs x64).
  • Ship satellite resource assemblies for localization.
  • Never ship Debug builds.
  • Handle 32/64-bit bitness consistently.
  • Register COM with Regasm (or use installer flags) and avoid writing into System folders unless required.
  • Use Fusion Log (Fuslogvw.exe) to diagnose “Could not load assembly” binding issues. (learn.microsoft.com)

This complements ’s simple advice (private DLLs in the app folder) and the MSDN pointers flagged by with concrete Inno Setup actions and diagnostic steps.

Recommended Answers

All 6 Replies

Hi,

You can find some explanation, here.

And a walkthrough, here.

Thanks for the help so far.

I'm reading through the MS and NSIS documentation.

The only thing I'm still not sure about is where to put the DLL dependencies.
I know you don't need to register them in .NET but where do I put them so that the application sees them?

Do you need to tell the application where to find the files?

Thanks!

no no. . just but them in the same directory as your application and it will automatically find them.. no need to provide and explicit location..

sandeepparekh9: Brilliant! Thank you!

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.