Testing program deployment

Feb 27, 2022 at 11:37am
So I've created a small windows utility that has a few external dependencies. Some I know for sure, but there may be some I've missed.

Now on Linux, this would be falling off a log easy; just create a clean install of the OS in a VM, then add my program and it's dependencies and check it all works.

But how do I do the same in windows?
Every scratch of the nose seems like an opportunity for m$ to either steal information or extract money.
Does it really involve shelling out the $$$$$$ just to test a program?
Feb 27, 2022 at 12:43pm
Well, you can just install a "fresh" Windows in a VM, e.g. by using Oracle VirtualBox:
https://www.virtualbox.org/

You can download Windows VM images, e.g. in VirtualBox format, directly from M$ here:
https://developer.microsoft.com/en-us/microsoft-edge/tools/vms/

(those are mostly intended for testing IE/Edge, but they come with a fully-fledged Windows)


Additionally, ISO images for all current Windows version are provided by M$ as "evaluation" version:
https://www.microsoft.com/en-us/evalcenter/evaluate-windows-10-enterprise

(so you can test them for 90 days "for free", as in beer)


But, if your goal is just to figure out all DLL dependencies of your software, you can use this tool:
https://i.imgur.com/wZX16R9.png
https://github.com/lucasg/Dependencies

(it's a successor to good old Dependency Walker, which doesn't work correctly on Windows 10)


Process Hacker can show you all loaded modules (DLL files) of a process at runtime:
https://i.imgur.com/jelwyOz.png
https://processhacker.sourceforge.io/nightly.php

(this can catch additional DLLs loaded at runtime, such as plug-in DLLs, which Dependencies won't show)


Finally, if you want to monitor which files your software is loading/accessing at runtime, see here:
https://docs.microsoft.com/en-us/sysinternals/downloads/procmon
Last edited on Feb 27, 2022 at 1:18pm
Feb 27, 2022 at 1:06pm
So I've created a small windows utility that has a few external dependencies

Dependency Walker was great at showing what DLLs were needed, but that tool is old. It kinda still works, but it doesn't like newer editions of Windows.

Someone has rewritten the app so it works with those newer Windows versions:
https://github.com/lucasg/Dependencies

I'd try using Dependencies before I went to the trouble of mucking around with a VM. I'm more than a bit lazy.

Ooops, looks like kigar already mentioned it.
Feb 27, 2022 at 1:09pm
Thanks all, that should be enough to be going on with.
Mar 4, 2022 at 5:19pm
Process Monitor is a good tool, another similar one is Process Explorer.
https://docs.microsoft.com/en-us/sysinternals/downloads/process-explorer

Both have new updates I didn't know about. :)
Topic archived. No new replies allowed.