【问题标题】:Can't find ResourceDictionary in Add New Item Window在添加新项目窗口中找不到 ResourceDictionary
【发布时间】:2012-09-24 02:16:04
【问题描述】:

当我创建一个新的 WPF 项目时,我可以在添加新项目窗口中找到 ResourceDictionary。 但是我有另一个项目我找不到,我不知道为什么。

更新: 该项目最初是针对 .net 3.5 的,但现在它也有针对 .net 4.0 的版本。这意味着同一个项目有两个 .sln 文件(一个用于 3.5,另一个用于 4.0)。

【问题讨论】:

  • 你删掉了项目的重要部分。您的目标是什么 .NET 版本?
  • 该项目原来是3.5版本的,现在还有一个4.0版本的.sln。这意味着,同一个项目现在有两个 .sln 文件。

标签: wpf wpf-controls resourcedictionary


【解决方案1】:

将以下行添加到 Project.csproj

    <ProjectTypeGuids>{60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>

它应该是&lt;PropertyGroup&gt;标签的子标签,像这样:

    <Project>
      <PropertyGroup>
        ....
        <ProjectTypeGuids>{guids};{go};{here}</ProjectTypeGuids>
        ...
      </PropertyGroup>
    ...
    </Project>

This post 很好地解释了为什么会这样。

【讨论】:

    【解决方案2】:

    首先,我希望您意识到这不会阻止您,因为您可以轻松地将您想要的任何文件添加到项目中,无论是从您的文件系统中,还是从另一个项目中复制它。添加新项目窗口只是为了方便。

    其次,当您将新项目添加到您的解决方案中时,您选择了哪个项目模板?项目模板确定项目具有的初始引用程序集集。 WPF 项目引用 WPF 库(WindowsBase、PresentationCore 等)。

    Visual Studio 使用您引用的程序集来生成您在“添加新项”对话框中看到的可能项。

    所以我假设您添加了一些其他类型的项目,例如基本类库。您可以使用“添加引用”对话框手动添加对 WPF 程序集的引用。或者您可以将项目重新创建为 WPF 自定义控件库。

    【讨论】:

    • 谢谢。其实我按照你说的做了,但是我在另一个地方犯了一个错误。
    • 实际上,这是一种误导:“Visual Studio 使用您引用的程序集来生成您在“添加新项”对话框中看到的可能项。”它与您引用的程序集无关。 VS 将特殊的 GUID 添加到作为 WPF 项目创建的项目中。在您的项目文件中添加这些将使您能够添加一个 ResourceDictionary。参考这个答案:stackoverflow.com/questions/5544137/…
    【解决方案3】:

    关闭项目。创建一个新项目,该项目属于您将使用的 WPF 项目类型(或使用现有项目)。然后在文本编辑器中打开 WPF 项目的 .csproj 文件。找到ProjectTypeGuids 元素。

    在记事本中打开现有的 .csproj 文件。看看它是否有ProjectTypeGuids 元素。如果是这样,请在现有项目中从 WPF 项目中附加 GUID(不带 ProjectTypeGuids)。如果您现有的 .csproj 文件中没有 ProjectTypeGuids 元素,请从 WPF 项目中复制 ProjectTypeGuids 和 GUID 并将其粘贴到现有项目中的第一个 PropertyGroup 元素中。

    在 Visual Studio 中重新加载您的项目。您现在应该可以添加所有 WPF 文件类型了。

    我相信每个人的 GUIDS 都是一样的,所以您需要的值应该是:{60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} ... 这应该可以为您节省创建新项目的步骤。

    所以如果你有一个类库项目,只需添加

    <ProjectTypeGuids>{60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
    

    到 .csproj 文件中的第一个 PropertyGroup 元素。

    【讨论】:

      猜你喜欢
      • 2020-01-05
      • 1970-01-01
      • 2017-06-13
      • 1970-01-01
      • 2014-05-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多