首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >引用Shell32.dll?

引用Shell32.dll?
EN

Stack Overflow用户
提问于 2016-08-20 10:30:20
回答 2查看 2.3K关注 0票数 0

我没有.NET 4.5来解压缩文件,所以我使用像这样的Shell32。但是,当我像这样引用dll时:

代码语言:javascript
复制
csc.exe /r:"C:\Windows\System32\shell32.dll" ...

我知道这个错误:

代码语言:javascript
复制
fatal error CS0009: Metadata file 'c:\Windows\System32\shell32.dll' could not be opened -- 'An attempt was made to load
    a program with an incorrect format. '

更新:没有Visual的,只有csc.exe

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-08-20 12:45:14

Shell32是一个COM服务器,您可以在C#程序中使用它。但是,您必须首先生成一个互操作程序集,以便将same 32.dll中的类型库(与.NET元数据相同的思想)转换为CLR可以理解的声明。或者通过运行Tlbimp.exe,或者,更简单地说,通过在IDE中添加一个对DLL的引用。

只要您在命令行中这样做,并且不使用msbuild来获得编译的.csproj项目文件,那么您就必须做与msbuild相同的事情,运行tlbimp。对于check 32.dll,只需执行一次,您就可以在源代码管理中签入互操作库,这样就不必再做一次了。在互操作库上使用/r。

当然,使用IDE或MSBuild.exe是明智的选择。还可以帮助您进入成功的深渊,您确实希望使用类型特性,这样您就不需要在运行时使用互操作程序集,也不必部署它。查看MSBuild生成的构建命令非常有用。

票数 3
EN

Stack Overflow用户

发布于 2016-08-20 11:19:44

可能是因为您试图像引用.NET程序集一样引用它。

我会尝试使用/lib:参数来包含程序集,而不是按照.

编译器选项。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39053073

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档