# What are the requirements on DLLs for simpleITK

**URL:** <https://discourse.itk.org/t/what-are-the-requirements-on-dlls-for-simpleitk/7352>\
**Category:** Beginner Questions\
**Created:** [December 13, 2024, 12:13pm UTC](https://discourse.itk.org/t/what-are-the-requirements-on-dlls-for-simpleitk/7352 "2024-12-13T12:13:02Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![matt.m](https://discourse.itk.org/letter_avatar_proxy/v4/letter/m/5f9b8f/32.png) [@matt.m](https://discourse.itk.org/u/matt.m)\
**Post date:** [December 13, 2024, 12:13pm UTC](https://discourse.itk.org/t/what-are-the-requirements-on-dlls-for-simpleitk/7352/1 "2024-12-13T12:13:03Z")

</div>

Hello, sorry if this is not the right place to ask this.

I am attempting to write a program using SimpleITK (C#) that runs on our clinical machine using their API. The current process is that I create a class library that includes simpleitk, build my class library, and then transfer those DLLs to the clinical system.

With simple itk in particular I am getting an error: `Unable to load DLL 'SimpleITKCSharpNative': The specified module could not be found. (Exception from HRESULT: 0x8007007E)`. From my understanding of this error, it is not necessarily that the Native library is missing, it is that it or **any** of its dependencies are missing. From my investigation it seems that maybe a C++ redistributable package installation is either out of date or missing from the clinical machine.

So my question is - what are the minimum requirements on installations that need to be present on a machine that will be running simpleITK?

Hopefully my question is clear, thanks

---

<div class="post-metadata">

**Author:** ![blowekamp](https://discourse.itk.org/user_avatar/discourse.itk.org/blowekamp/32/79_2.png) [@blowekamp](https://discourse.itk.org/u/blowekamp)\
**Post date:** [December 13, 2024, 2:35pm UTC](https://discourse.itk.org/t/what-are-the-requirements-on-dlls-for-simpleitk/7352/2 "2024-12-13T14:35:12Z")

</div>

Did you compile the binary your self or download it?  
It this error on your development system, ( presumable with C# SDKs ), or on a non-development workstations?

---

<div class="post-metadata">

**Author:** ![matt.m](https://discourse.itk.org/letter_avatar_proxy/v4/letter/m/5f9b8f/32.png) [@matt.m](https://discourse.itk.org/u/matt.m)\
**Post date:** [December 13, 2024, 2:38pm UTC](https://discourse.itk.org/t/what-are-the-requirements-on-dlls-for-simpleitk/7352/3 "2024-12-13T14:38:32Z")

</div>

Thanks for the reply:

1. I downloaded the latest binaries as of yesterday for Win 64

2. SimpleITK works on my development system. It does **not** work on the non-development workstation. To modify those workstations is a difficult process (potentially not allowed since they are considered medical devices - but I need more information to determine what I want done)…

Hopefully that is more clear

---

<div class="post-metadata">

**Author:** ![blowekamp](https://discourse.itk.org/user_avatar/discourse.itk.org/blowekamp/32/79_2.png) [@blowekamp](https://discourse.itk.org/u/blowekamp)\
**Post date:** [December 13, 2024, 3:02pm UTC](https://discourse.itk.org/t/what-are-the-requirements-on-dlls-for-simpleitk/7352/4 "2024-12-13T15:02:56Z")

</div>

The binary distributions are built with [MSVC v142 tool chain.](https://github.com/SimpleITK/SimpleITK/blob/master/.github/workflows/Package.yml#L118). Which corresponds to Visual Studio 2019. This is the oldest VS compiler [ITK supports](https://docs.itk.org/en/latest/supported_compilers.html).

Most likely the system is missing a new enough MS C++ redistribution library. You can find more information about it here:

> **[Redistributing Visual C++ Files](https://learn.microsoft.com/en-us/cpp/windows/redistributing-visual-cpp-files?view=msvc-160)**
>
> Visual Studio includes Redistributable libraries and components you can deploy with your app.

---

<div class="post-metadata">

**Author:** ![matt.m](https://discourse.itk.org/letter_avatar_proxy/v4/letter/m/5f9b8f/32.png) [@matt.m](https://discourse.itk.org/u/matt.m)\
**Post date:** [December 13, 2024, 3:10pm UTC](https://discourse.itk.org/t/what-are-the-requirements-on-dlls-for-simpleitk/7352/5 "2024-12-13T15:10:56Z")

</div>

Thank you that’s perfect

---

<div class="post-metadata">

**Author:** ![lassoan](https://discourse.itk.org/user_avatar/discourse.itk.org/lassoan/32/27_2.png) [@lassoan](https://discourse.itk.org/u/lassoan)\
**Post date:** [December 31, 2024, 5:47pm UTC](https://discourse.itk.org/t/what-are-the-requirements-on-dlls-for-simpleitk/7352/6 "2024-12-31T17:47:14Z")

</div>

There is no need to guess or experiment to know what is happening. Instead, you can use the `sxstrace` utility on Windows to get a detailed log of all dynamic library loadings. You can see what libraries are searched for, where, and why they are failing.

Dependency Walker utility may also work for simple cases. It has a nice GUI, which makes it easier to use, but it can only give hints of what libraries may be problematic (only does static analysis and does not fully support side-by-side assemblies).
