C# Xamarin和oak DICOM的同事不';t不在bin文件夹中创建dicom.dll

C# Xamarin和oak DICOM的同事不';t不在bin文件夹中创建dicom.dll,c#,android,xamarin,dicom,fo-dicom,C#,Android,Xamarin,Dicom,Fo Dicom,我在Windows8.1Xamarin项目(共享项目,Xamarin.Android&Xamarin.iOS)上创建了一个简单的dicom图像查看器 我们使用的是通过nuget软件包安装的oak Dicom 在共享项目中,有一种方法负责使用dicom中的DicomImage对象加载新的dicom图像 foreach(string file_name in files) { try { dicom_f

我在Windows8.1Xamarin项目(共享项目,Xamarin.Android&Xamarin.iOS)上创建了一个简单的dicom图像查看器

我们使用的是通过nuget软件包安装的oak Dicom

在共享项目中,有一种方法负责使用dicom中的DicomImage对象加载新的dicom图像

foreach(string file_name in files)
        {
            try
            {

                dicom_file = DicomFile.Open(file_name);
                DicomImage dcmimg = new DicomImage(file_name);

                file_list.Add(dcmimg);
            }catch(Exception e)
            {
                Console.WriteLine(e.ToString());
            }
        }
    }
从Xamarin.Android调用负责加载DicomImage的函数 在移动设备上部署应用程序并尝试加载dcm映像后,会发生崩溃,并显示以下错误: “没有为传输语法注册编码解码器:JPEG 2000图像压缩”

经过研究,我发现了问题的根源:缺少DICOM本地dll,该dll应该在构建项目后创建,但它没有。所以在互联网上,有人说要将目标平台设置为x64或x86,但这没有帮助。 我已将解决方案中所有项目的目标平台设置为x64,然后尝试使用x86

有没有其他方法可以强制包括这个dll(我不知道从哪里可以下载这个缺少编解码器的文件)或者其他一些解决这个问题的方法

在Xamarin iOS和Android版本2.0.x的fo dicom中,根本不支持压缩的编解码器

在目前处于测试阶段的3.0版中,Xamarin iOS和Android对JPEG 8位基线和渐进式编解码器以及JPEG2000 8位(单色和RGB)的支持有限

全面的支持,包括12位和16位单色图像、JPEG无损和JPEG-LS近无损和无损,仅在.NET Framework和通用Windows平台UWP上可用。缺少Dicom.Native DLL的问题仅与.NET Framework有关


NET Framework和UWP实现正在使用更完整的C/C++类库来支持编解码器,然而,Xamarin实现目前正在使用基于C#的托管代码类库,这些类库在DICOM上下文中的限制要大得多。

您是否在解决方案资源管理器中检查了DLL的属性?请确保“复制本地”选项设置为true。另外,我对您正在使用的库一无所知,在某些情况下,DLL是您在主机上执行的安装的一部分,而不是特定于项目的bin。@Darren,此DLL不在解决方案资源管理器中,我猜它是在构建项目时创建的。如果您的解决方案中没有形成此dll的代码,则很可能是安装时添加到系统中的dll。同样的安装需要在您的主机系统上完成,或者您需要另一个过程来复制它,比如后期构建,我想oak DICOM的同事应该形成这个库,或者至少将它分配给我的项目。