在以编程方式编译的程序中引用shell32.dll

本文关键字:引用 shell32 dll 程序 编程 方式 编译 | 更新日期: 2023-09-27 17:59:15

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

搜索时一无所获。。我甚至不知道该搜索什么:/

我该怎么做?

在以编程方式编译的程序中引用shell32.dll

Shell32.dll(Windows文件系统不在乎大小写,所以"s"或"s"不重要)不是.NET程序集,因此不能按此处理。

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

我遇到了同样的问题,刚刚解决了它。

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

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