19

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

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

4

3 回答 3

36

将以下行添加到 Project.csproj

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

它应该是标签的子<PropertyGroup>标签,如下所示:

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

这篇文章很好地解释了为什么这样做。

于 2014-12-30T18:32:35.930 回答
5

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

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

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

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

于 2012-09-24T03:25:55.343 回答
0

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

在记事本中打开现有的 .csproj 文件。看看有没有ProjectTypeGuids元素。如果是这样,请将来自 WPF 项目的 GUID(不带ProjectTypeGuids)附加到现有项目中。如果现有的 .csproj 文件中没有ProjectTypeGuids元素,请从 WPF 项目中复制ProjectTypeGuidsGUID 并将其粘贴到现有项目的第一个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-06-10T10:56:37.750 回答