我的程序中需要shell32才能创建快捷方式。
这是我的代码:
var compiler = new CSharpCodeProvider();
var Params = new System.CodeDom.Compiler.CompilerParameters
{
GenerateExecutable = true,
OutputAssembly = outputName,
ReferencedAssemblies = {
"System.dll",
"System.Core.dll",
"System.Windows.Forms.dll",
"System.Drawing.dll",
@"C:\Windows\System32\Shell32.dll"
}
};
这样做,我收到一个错误:
无法打开元数据文件C:\ Windows \ System32 \ Shell32.dll。试图加载格式不正确的程序。
搜索时没有找到任何内容..我甚至不确定要搜索的内容:/
我将如何做到这一点?
答案 0 :(得分:2)
Shell32.dll(Windows文件系统不关心案例,所以" s"或者" S" S"不重要)不是.NET程序集因此不能这样对待。
如果要调用从非.NET库导出的函数,则应使用DllImportAttribute
。
答案 1 :(得分:1)
我遇到了同样的问题并且解决了它。
将以下内容添加到引用的程序集列表中:
ReferencedAssemblies.Add("Interop.Shell32.dll");