![]() |
1
49
以下内容对我很有用: 简短回答 通过命令行(cmd)运行以下命令:
将为您创建有效的dll。 更长的答案
|
![]() |
2
15
只有当项目是.NET程序集时,才能将dll(或exe)添加到项目中。如果不是,您将看到此错误消息。 regsvr32还对dll中的结构和导出函数进行了某些假设。从我使用它已经有一段时间了,但它必须与注册COM服务器有关,所以某些入口点需要可用。如果regsvr32失败,则dll不提供这些入口点,并且dll不包含COM组件。 使用该dll的唯一机会是像导入任何其他非.NET二进制文件一样导入它,例如使用某些win32 API时。有一篇旧的MSDN杂志文章可能会有所帮助。有关从何处获取文章的信息,请参阅以下更新。 更新日期:2018年3月12日: 链接到msdn杂志不再像2010年8月那样有效。jason clark的文章标题是“.net column:calling win32 dlls in c with p/invoke”。它发表在2010年7月的《MSDN杂志》上。“回程机器”有这篇文章 here 目前(格式有限)。整个MSDN杂志2010年7月发行。 here (仅限HCM格式,有关如何使用HCM文件的说明 here ) |
![]() |
3
12
我使用DependencyWalker来检查DLL的内部引用。原来它需要vb runtime msvbvm60.dll,由于我的dev box没有安装,所以我无法使用regsvr32注册它。 这似乎是我最初问题的答案。 |
![]() |
4
6
如果要引用x86 dll,请确保编译器设置为x86… 我也有类似的问题…如上所述,尝试使用OLEDB从Visual Studio 2012中的“我的C代码”访问Excel文件。 我不断地收到关于访问库无法访问的错误,但我知道我已经加载了它。 在调试期间,我突然意识到我正在为64位编译,但是已经加载了OfficeX86。虽然我加载了32位的访问库,但它从未被应用程序使用…因此,这是不可接近的。 以下是我在C中使用的内容: “provider=microsoft.ace.oledb.12.0;data source=”+strfilepath+“;extended properties='excel 12.0 xml;hdr=yes'”; …我出错了 当我将编译器切换到x86时,它就工作了 |
|
5
2
我刚刚遇到了这个问题,在所有关于用命令提示修复它的解释之后,我发现如果您直接将它添加到项目中,那么您就可以在需要的每个页面上简单地包含库。 |
|
6
2
在我的项目中导入winscard.dll也有同样的问题。我处理直接从dll导入的问题,如下所示:
您可以将其添加到单独的项目中,然后从主项目中添加引用。 |
![]() |
7
1
不能将引用添加到 本地的 动态链接库。但是,您可以将它们包括在解决方案中(右键单击解决方案,选择“添加现有文件”),但除非您声明类似
也许有某种 包装器 动态链接库,您实际上正在引用它,其中包含动态链接库导入。 有时,您可能引用包装程序dll,但仍然无法使程序运行,错误提示会建议您确保文件存在,并且所有依赖项都可用。 此问题是因为您试图添加的程序集是目标程序集,并且仅针对 x86 或 X64 处理器体系结构。 只需尝试将目标平台更改为 x86 或 X64 在里面 建造 -gt; 配置管理器 . |
|
8
0
我也面临同样的问题。我试图将.NET 2.0 dll的引用添加到.NET 1.1项目中。当我试图添加.NET 1.1中编译的.dll的早期版本时。这对我很有效。 |
![]() |
9
0
对于寻求此问题帮助或遇到FileNotFoundException或FirstChanceException的其他人,请查看我的答案: 总的来说,你必须绝对确定你满足了做参考的所有要求——我知道这是显而易见的答案,但你可能忽略了一个相对简单的要求。 |
![]() |
10
0
在构建解决方案的过程中,我的PC重新启动后出现了这个问题。我的两个引用消失了,所以我必须手动重建我的两个项目,然后我可以毫无错误地添加引用。 |
![]() |
11
0
我在编写Windows服务时出错。我以管理员身份运行Visual Studio,以便生成后命令自动安装我的服务。我注意到,当我关闭所有内容并正常运行vs(不是作为管理员)时,它允许我添加引用,但没有错误。 希望这个解决方案对您有效。 |
![]() |
12
0
通常在VisualStudio 2015中,应该将VisualStudio的模板中的DLL项目作为C++& GT;CLR项目创建,但在技术上可以在事实之后启用它。
关键属性被调用
这样做时,vs可能不会更新“target.net framework”选项(就像它应该更新的那样)。您可以通过卸载项目、编辑您的\u project.xxproj文件以及添加/更新
对于一个示例,我建议创建一个新的解决方案,作为一个C++ CLR项目,并检查那里的XML,甚至可以将其分解,以确保没有什么非常重要的,这是不寻常的。 |
![]() |
13
0
我需要在配置管理器中将体系结构从x64更改为x86,并将我的32位dll(C语言-pcproxapi.dll)复制到创建的新文件夹中。这是在“萨修斯”描述的台阶上 below . C:\projects..\bin\x86\debug |
![]() |
14
0
我的回答有点晚,但作为一个快速测试,请确保您使用的是最新版本的库。 在我的例子中,在更新了一个nuget库之后,这个库引用了另一个库,导致了这个问题消失了。 |
![]() |
15
0
当我试图添加一个刚编码的dll时,我也遇到了同样的问题。结果发现我需要设置我的dll来自的项目的属性:
因为我想在其中使用这个dll的项目也被设置成那样(具有相同的属性设置为
|
![]() |
Ehsan Akbar · 当请求被激发时,WCF请求时间会增加 6 年前 |
![]() |
Gans · 具有多操作合约的WCF Rest服务 6 年前 |
![]() |
Moelgaard · NLog中的IIS应用程序名称。配置 6 年前 |
![]() |
Kerwen · WCF服务调用异步函数 7 年前 |