当我创建一个新的WPF项目时,我可以在Add New Item Window中找到ResourceDictionary。 但我还有另外一个项目我无法找到,而且我不知道为什么。
更新: 该项目最初是针对.net 3.5的,但现在它还有.net 4.0的版本。这意味着同一个项目中有两个.sln文件(一个用于3.5,另一个用于4.0)。
答案 0 :(得分:29)
将以下行添加到Project.csproj
<ProjectTypeGuids>{60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
它应该是<PropertyGroup>
标记的子代,如下所示:
<Project> <PropertyGroup> .... <ProjectTypeGuids>{guids};{go};{here}</ProjectTypeGuids> ... </PropertyGroup> ... </Project>
This post很好地解释了为什么会有效。
答案 1 :(得分:4)
首先,我希望您意识到这不应该阻止您,因为您可以从文件系统或从其他项目复制项目,轻松地将任何文件添加到项目中。 “添加新项”窗口只是为了方便起见。
其次,当您将新项目添加到解决方案中时,您选择了哪个项目模板?项目模板确定项目具有的初始引用程序集。 WPF项目引用了WPF库(WindowsBase,PresentationCore等)。
Visual Studio使用引用的程序集生成您在“添加新项”对话框中看到的可能项。
所以我假设你添加了一些其他类型的项目,比如基本的类库。您可以使用“添加引用”对话框手动添加对WPF程序集的引用。或者您可以将项目重新创建为WPF自定义控件库。
答案 2 :(得分:0)
关闭项目。创建一个您将要使用(或使用现有的)WPF项目类型的新项目。然后在文本编辑器中打开WPF项目的.csproj文件。找到ProjectTypeGuids
元素。
在记事本中打开您现有的.csproj文件。查看它是否具有ProjectTypeGuids
元素。如果是这样,请在现有项目中从WPF项目附加GUID(不添加ProjectTypeGuids
)。如果您现有的.csproj文件中没有ProjectTypeGuids
元素,请从WPF项目中复制ProjectTypeGuids
和GUID,然后将其粘贴到现有项目的第一个PropertyGroup
元素中。 / p>
在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
元素。