我没有.NET 4.5来解压缩文件,所以我使用像这这样的Shell32。但是,当我像这样引用dll时:
csc.exe /r:"C:\Windows\System32\shell32.dll" ...我知道这个错误:
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。
发布于 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生成的构建命令非常有用。
发布于 2016-08-20 11:19:44
https://stackoverflow.com/questions/39053073
复制相似问题