无法加载DLL'coredll.dll':找不到指定的模块

时间:2012-08-29 20:41:50

标签: compact-framework opennetcf

我正在编写一个小应用程序来测试OpenNETCF库加载,并偶然发现了这个奇怪的消息

Unable to load DLL 'coredll.dll' : the specified module could not be found

我在Windows Embedded 7 Compact瘦客户机上使用Compact Framework 3.5。

代码是

using System;
using System.Linq;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;

using OpenNETCF.Threading;

namespace Windows7EmbeddedTest
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {

            MessageBox.Show("Starting the test");

            bool notRunning;
            NamedMutex mutex = new NamedMutex(false, "myappname", out notRunning);


            MessageBox.Show("test went well!");

        }    
    }
}

任何想法如何解决这个问题?我在Windows Embedded Compact 7瘦客户机上搜索了coredll.dll,但没有出现任何问题。我的理解是它是Windows CE设备不可或缺的一部分。那么为什么OpenNETCF无法在Windows Embedded Compact 7机器上找到它呢?我需要手动下载/安装此DLL吗?注册吗? 如果Windows Embedded Compact 7附带了它,那么寻找它的途径是什么?

1 个答案:

答案 0 :(得分:1)

您是否确信您的瘦客户端设备运行的是Windows Embedded Compact(Windows CE)而不是Windows Embedded Standard(WES)?

我问的原因是因为coredll.dll是Windows CE操作系统的基础部分。这是桌面的kernel32.dll和user32.dll(以及其他几个)的模拟全部包装成一个。拥有不包含coredll.dll的Windows CE操作系统是不可能的。

通常它是一个隐藏文件,所以它不会在资源管理器中显示,除非你“显示隐藏文件”或使用类似远程文件查看器的东西,但.NET加载程序找不到它的事实让我怀疑它不是在那里,这反过来让我相信你在运行WES而不是CE。