我又遇到了一个我无法解决的问题。
我正在尝试在C#中使用C ++ DLL。我在Win7环境下成功构建了所有内容。但是,当我将这些二进制文件移动到XP环境时,我得到一个错误:
未处理的异常:System.IO.FileNotFoundException:无法加载文件或程序集“TestDLL.dll”或其依赖项之一。无法找到指定的模块。在Test.Program.Main()
中
我已经安装了所有C ++ Redistributable软件包(2005年,2008年,2010年),但这些并没有解决问题。
我尝试使用.NET v3.5而不是v4.0,但它也没有帮助我。我正在使用VS2010。
构建的简单代码我曾经在Win7上构建的XP上重新生成问题:
C ++ DLL:
#include "stdafx.h"
#include "TestDLL.h"
namespace Test
{
namespace DLL
{
DLL::DLL(void)
{
}
}
}
#pragma once
using namespace System;
namespace Test
{
namespace DLL
{
public ref class DLL
{
public:
DLL(void);
};
}
}
C#控制台应用:
using System;
using Test.DLL;
namespace Test
{
class Program
{
static void Main()
{
try
{
DLL a = new DLL();
}
catch (Exception ex)
{
Console.WriteLine(ex.ToString());
}
Console.ReadLine();
}
}
}
所有这些都是使用x86构建的,而不是任何CPU或x64。
我缺少什么依赖?我测试的每个XP都出现了这个问题。这在我测试的每个Win7上都运行良好。
答案 0 :(得分:1)
我在XP上测试了这个。得到了同样的错误,使用了ProcMon,发现MSVCR100.dll丢失了。已安装Microsoft Visual C++ 2010 Redistributable Package (x86),一切正常。没有更多的错误。 并且还将应用程序构建为Release ..
您是否使用ProcMon查看系统中缺少的内容?