【问题标题】:.NET 4.0 - Microsoft.Windows.Shell - where is it?.NET 4.0 - Microsoft.Windows.Shell - 它在哪里?
【发布时间】:2011-12-06 16:33:58
【问题描述】:

我正在研究 Sofa V2.5 的示例,它是一个 WPF Docking 框架。

这些是 VS2010、.NET 4.0。在一个项目中,有一个对“Microsoft.Windows.Shell”程序集的引用,该程序集尚未解决。

当我打开添加引用并查找 .NET 程序集时,我没有看到 Microsoft.Windows.Shell。为什么不?我在 Windows 7 上运行 VS2010。它怎么会丢失?如果没有丢失,为什么VS2010看不到?

【问题讨论】:

  • 我还是不明白这个怎么安装?

标签: .net visual-studio-2010


【解决方案1】:

它现在有一个 NuGet 包:

Install-Package Microsoft.Windows.Shell

2020 年 6 月更新:根据 @yaron 在 cmets 中提供的更新,此软件包不再可用。正如 NuGet 页面所述:

所有者已取消列出此包。这可能意味着该软件包已被弃用或不应再使用。

【讨论】:

  • 谢谢你!但是,运行此之后,如何让它显示在“添加引用”下的“扩展”中?
  • 安装包:找不到包'Microsoft.Windows.Shell'
【解决方案2】:

它可能包含在其中:Ribbon (WPF)

【讨论】:

  • 功能区现在包含在 BCL System.Windows.Controls.Ribbon 中。不再需要使用 RibbonControlLibrary
  • 这个问题专门针对.NET 4.0。这对受旧框架限制的开发人员没有帮助。
【解决方案3】:

从 NuGet 获取:

Install-Package Microsoft.Windows.Shell -Version 3.0.1

注意添加-Version 3.0.1,不添加会收到错误。

【讨论】:

    【解决方案4】:

    在 Microsoft Visual Studio 中 去

    工具>>NuGet 包管理器>>包管理器控制台

    在包管理器控制台窗口中输入这个

    Install-Package Microsoft.Windows.Shell -Version 3.0.1
    

    【讨论】:

      【解决方案5】:

      包所有者 (Gareth Evans) 决定取消列出它,但它仍然可用。
      但是,我不建议使用它。
      此版本已过时,可能包含某种错误或漏洞。
      https://www.nuget.org/packages/Microsoft.Windows.Shell/3.0.1

      目前,接受的答案仍然是一个有效的选项。
      不过,如果这些链接现在随时停止工作,我不会感到惊讶。
      .msi 安装程序文件会将内容放入%ProgramFiles%\Microsoft Ribbon for WPF\
      Microsoft.Windows.Shell.dll v3.5.41019.1 将位于 WindowChrome 目录中。

      旁注:
      不要浪费时间尝试使用 Microsoft Ribbon for WPF。这是一场噩梦。
      还有更好的选择,例如https://github.com/fluentribbon/Fluent.Ribbon

      另外,我发现 Fluent Ribbon 使用 https://github.com/ControlzEx/ControlzEx 代替了 Microsoft.Windows.Shell(ControlzEx 包含 shell 函数的源代码)

      如果接受的答案的链接停止工作,另一种方法是获取多语言应用工具包。
      https://docs.microsoft.com/en-us/windows/uwp/design/globalizing/use-mat
      在撰写本文时,它包含相同的版本 (3.5.41019.1),并且似乎将来会受到支持。 (支持VS2019,有翻译服务和客户依赖,推荐UWP应用本地化等)

      【讨论】:

        【解决方案6】:

        System.Windows.ShellMicrosoft.Windows.Shell 相同。 System.Windows.Shell 包含在 PresentationFramework.dll 中。 因此,在您的 .xaml 文件中,直接使用命名空间中的类。在您的代码隐藏中,使用命名空间中的类包括 'using System.Windows.Shell;'。

        延伸: WindowsChrome 从 .net4.5 开始可用 https://msdn.microsoft.com/en-us/library/system.windows.shell.windowchrome(v=vs.110).aspx

        【讨论】:

        • xmlns:shell="clr-namespace:System.Windows.Shell;assembly=PresentationFramework"
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2011-07-01
        • 2013-12-02
        • 1970-01-01
        • 2011-05-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多