我继承了一个构建在Windows2008 R2框上的项目,它引用了Shell32.dll。
我需要这个项目在Windows2003Box上工作,而且看来Shell32.dll不包含W2003框上的"Target“方法。
是否有同等的方法或方法来做到这一点?
这是代码:
serverlink = (ShellLinkObject)serverlinkfile.GetLink;
string spath = serverlink.Target.Path;这是VS2010给我的错误:
“Shell32.ShellLinkObject”不包含“Target”的定义,也没有接受“Shell32.ShellLinkObject”类型的第一个论证的扩展方法“Target”(您缺少使用指令还是程序集引用?)
更新-新错误:
对象引用未设置为对象的实例
违规代码( Shell32.FolderItems项= sourceFolder.Items();)
FileSystemObject fso = new FileSystemObject();
if (!fso.FolderExists(destPath))
{
fso.CreateFolder(destPath);
}
ShellClass sc = new ShellClass();
Shell32.Folder sourceFolder = sc.NameSpace(sourcePath);
Shell32.Folder destFolder = sc.NameSpace(destPath);
Shell32.FolderItems items = sourceFolder.Items();发布于 2014-04-29 14:40:51
目标不是有文件记载的财产 for ShellLinkObject。否则,尝试在已有10年历史的操作系统上运行代码的风险就大了。
使用路径特性代替。它必须是一个物理路径,而不是一个虚拟的shell文件夹。
发布于 2014-04-29 16:10:45
通常情况下,在使用COM和更改构建平台时,如果环境设置不正确,您可以像正在得到的那样获得错误。
通过删除COM引用并重新添加它,有时会修复这个问题。
https://stackoverflow.com/questions/23367015
复制相似问题