我对 C# 编程有点陌生,我希望得到你的帮助。
快速回顾一下我首先要做的事情。
我必须创建: - 生成多个 .h5 文件(HDF5 格式)和一个 xml 文件的 DLL - 用于在这些 HDF5 文件中写入的图形的 WPF 查看器。
问题主要在于它们将用于一个名为 Panorama E² 的软件中,该软件基本上以一种非常严格的方式管理 DLL。例如,它不允许 .NET 框架 4(这使我使用 3.5 版本的框架)。
有关全景的更多信息:http: //uk.codra.net/panorama/panorama-e2-information-system
我正在使用 HDF5DotNet.dll,我在 x64 中为 .NET 3.5 编译,为我的 WPF 应用程序使用 DynamicDataDisplay。
我所有的 DLL 都将被另一台计算机使用,其中安装了 Panorama,而没有安装 Visual Studio(只有 3.5 .NET 框架和一些必需的工具)。
有什么问题 ?
嗯,首先,我的 WPF 应用程序并不是一个真正的应用程序,Panorama 似乎不支持 WPF,只支持 Windows 窗体,并且只支持 DLL。这意味着我创建了一个 WPF UserControl,我将它嵌入到 Windows 窗体 DLL 中。
我基本上有 2 个 DLL,一个是 WPF 控件,另一个是在 winform 中使用此控件。这是我必须集成到全景图中的最后一个。在我正在编码的计算机上,Panorama 可以正确识别 DLL,并且没有问题。
但是,当我尝试将这些 DLL 提供给我的同事,他的全景图没有安装 Visual Studio 时,它不起作用。经过一些测试,我注意到它仅在项目(DLL)已在同一台计算机上编译时才有效。
同样的问题也适用于另一个 DLL,即创建文件的那个。正如我所说,它使用 HDF5DotNet.dll,但它似乎没有正确创建它。我想这是同样的问题,DLL 无法识别。
我试过了。
我认为也许 DLL 没有正确导出。当您在同一台计算机上编译时,可能没有给出引用的 DLL 或程序集。它们是 COM DLL,因为它们在全景图中使用,我无法正确导出它们。
我尝试创建安装项目,以便将它们与它们的依赖项一起安装,但我找不到方法。仅安装 DLL。我尝试使用 DependancyWalker 查看我的 DLL,并且有些地方缺少依赖项。即使我尝试手动添加它们,也没有任何变化。
我也知道 regsvr32 不适用于 .NET DLL,因为没有入口点。这就是我考虑 GAC 的原因,但我无法注册它们(使用强名称和所有内容),因为我无法直接生成它们。
所以,是的,对于这篇长篇文章感到抱歉,我试图解释我的思路以及我实际尝试做的事情,但我找不到将我的项目提供给我的同事的方法,以便他可以在他的计算机上使用它们。