C# 为什么我不能将某些文件类型添加到VS2010项目中?

C# 为什么我不能将某些文件类型添加到VS2010项目中?,c#,wpf,visual-studio-2010,C#,Wpf,Visual Studio 2010,我正在尝试将WPF ResourceDictionary添加到刚才创建的C项目中。该项目最初不是一个WPF项目,但现在我需要在其中包含一些WPF资源 在项目上单击鼠标右键并选择“添加”时,ResourceDictionary不是一个选项。即使我打开模式对话框并导航到ResourceDictionary类型应该与其他WPF类型一起出现的位置,它也不存在 另外,当我手动向项目添加具有ResourceDictionary语法的XAML文件时,我无法使用WPF Application.Loaduri语法

我正在尝试将WPF ResourceDictionary添加到刚才创建的C项目中。该项目最初不是一个WPF项目,但现在我需要在其中包含一些WPF资源

在项目上单击鼠标右键并选择“添加”时,ResourceDictionary不是一个选项。即使我打开模式对话框并导航到ResourceDictionary类型应该与其他WPF类型一起出现的位置,它也不存在

另外,当我手动向项目添加具有ResourceDictionary语法的XAML文件时,我无法使用WPF Application.Loaduri语法以编程方式加载它,因此我觉得VS2010出于某种原因阻止我添加该文件

如何使我的项目能够添加ResourceDictionary,而不必从头开始将整个项目重新创建为WPF项目并从头开始重新添加每个文件


此外,是什么定义了可以添加到项目中的文件类型,以便在将来避免类似问题?希望这是我需要添加到AssemblyInfo.cs文件中的一行这样简单的内容。

尝试创建一个空白的WPF项目,然后将.csproj文件区分开来,它们只是简单的XML,用于该项目和您的项目,看看有什么不同之处-除了文件列表和奇怪的编译器设置,您可能会找到标识项目类型的GUID或其他条目,当然,在备份现有项目文件后,您可以复制/粘贴这些GUID或条目来升级项目


或者,您可以在csproj文件之间小心地复制和粘贴文件/文件夹XML,以便从头开始快速重建整个项目,因此无需担心这样做。

关闭项目。创建一个新项目,该项目属于您将使用的WPF项目类型。然后在记事本中打开新的.csproj文件。查找ProjectTypeGuids元素。将这些guid复制到剪贴板。在记事本中打开现有的.csproj文件。将这些GUID追加到此文件的ProjectTypeGuids元素中。检查是否有重复。在Visual Studio中重新加载项目。您现在应该能够添加所有WPF文件类型

PS:我并没有专门用WPF来做这件事,但我用过其他项目类型,它工作起来没有问题


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

我认为您最好的选择是创建一个新的WPF项目,并将所有内容复制到整个项目中。如果这是一个非常大的项目,并且您感到有冒险精神,那么您可以打开项目文件的XML卸载项目,然后用XML编辑原始csproj文件


然后跨ItemGroup部分进行复制,并确保新项目目录下存在相应的源文件。祝你好运

这个项目是作为什么创建的?我并不觉得奇怪,你不能将WPF元素添加到非WPF项目中。这应该作为一个bug提交给微软,对吗?在类项目上创建WPF窗口是完全有效的。我的csproj甚至没有ProjectTypeGuids。我添加了这个,它可以工作:{60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}不确定您是否可以简单地添加一个新项目,但我的一个现有项目列在第一个项目下。。。元素。供参考:下面是一个包含许多不同项目GUID的示例。它还包含提到的GUID。例如,编辑答案以说明现有projectClass库中没有ProjectTypeGuids元素的情况。不过,这需要得到批准。