找不到文件'Microsoft.Windows.Common-Controls,Version = 6.0.0.0,Culture = *,PublicKeyToken = 6595b64144ccf1df,

时间:2012-04-26 08:51:11

标签: c# wpf manifest common-controls

我正在尝试将this library集成到我的应用程序中。

起初它与

坠毁了
Unable to find an entry point named 'TaskDialogIndirect' in DLL 'ComCtl32'.

所以我取消注释

<dependentAssembly>
  <assemblyIdentity
      type="win32"
      name="Microsoft.Windows.Common-Controls"
      version="6.0.0.0"
      processorArchitecture="*"
      publicKeyToken="6595b64144ccf1df"
      language="*"
    />
</dependentAssembly>

按照建议here

现在应用程序将无法使用以下消息进行编译:

Could not find file 'Microsoft.Windows.Common-Controls, Version=6.0.0.0, Culture=*, 
    PublicKeyToken=6595b64144ccf1df, ProcessorArchitecture=*, Type=win32'

删除app.manifest会导致应用崩溃,因为我正在使用Microsoft功能区。

如何解决此错误?

3 个答案:

答案 0 :(得分:3)

Windows 7不支持您尝试的文件。这意味着您必须提供它,如果您尝试开发适用于Windows XP的应用程序,最简单的解决方案是放弃对Windows XP的支持。

  

Microsoft Visual Basic 6.0的主流支持于3月31日结束,   但是,我们发布了这个与安全性无关的软件包,因为它包含了可以立即发布的改进   在主流支持结束之前。 Microsoft Visual Basic 6.0具有   过渡到延长支持,持续到2008年3月31日。   微软没有扩展微软的主流支持阶段   Visual Basic 6.0以任何方式。

来源: Microsoft Visual Basic 6.0 Common Controls

  

支持的操作系统:Windows 2000,Windows 2000 Advanced   服务器,Windows 2000专业版,Windows 2000 Server,   Windows 98,Windows 98 Second Edition,Windows ME,Windows NT,Windows   Server 2003,Windows XP,Windows XP Home Edition,Windows XP Media   中心版,Windows XP专业版,Windows XP平板电脑   版

在您停止使用此文件之前,它无法在任何Windows操作系统(包括64位Windows XP Edition)上作为64位进程运行。

没有理由不能修改要用于支持文件的代码的行为。

您可能对此项目有更好的运气:http://www.codeproject.com/Articles/137552/WPF-TaskDialog-Wrapper-and-Emulator

答案 1 :(得分:2)

我在项目中遇到了相同的错误消息,只是想分享我的解决方案。

我正在Windows 7上构建一个项目,该项目依赖于清单文件中列出的这个dll。由于它试图在Windows 7上编译,它找不到该文件,因此我得到了同样的错误。

解决方案只是从清单中删除此依赖项,因为项目中的任何内容实际上似乎都不依赖于此程序集。

答案 2 :(得分:1)

与问题无关,但与相同的错误消息有关。

我尝试通过右键单击项目->发布来发布WPF应用程序,此后该应用程序停止编译。

使其正常工作的唯一方法是删除项目(csproj)文件中所有添加的行。