在程序编译的程序中引用shell32.dll?

时间:2014-04-20 12:59:42

标签: c# shell32

我的程序中需要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。试图加载格式不正确的程序。

搜索时没有找到任何内容..我甚至不确定要搜索的内容:/

我将如何做到这一点?

2 个答案:

答案 0 :(得分:2)

Shell32.dll(Windows文件系统不关心案例,所以" s"或者" S" S"不重要)不是.NET程序集因此不能这样对待。

如果要调用从非.NET库导出的函数,则应使用DllImportAttribute

答案 1 :(得分:1)

我遇到了同样的问题并且解决了它。

将以下内容添加到引用的程序集列表中:

    ReferencedAssemblies.Add("Interop.Shell32.dll");