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

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

当我右键单击项目并选择“添加”时,ResourceDictionary不是一个选项。 即使我打开modal dialog并导航到ResourceDictionary类型应该在的位置(与其他WPF类型一起),它也不存在。

此外,当我手动将具有ResourceDictionary语法的XAML文件添加到项目时,我无法使用WPF Application.Load(uri)语法以编程方式加载它,所以我觉得VS2010阻止我添加文件是有原因的。

如何让我的项目“能够”添加ResourceDictionary而无需从头开始重新创建整个项目作为WPF项目并从头开始重新添加每个文件?

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

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

PS:我没有专门针对WPF做过这个,但我有其他项目类型,它没有问题。

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

我认为你最好的办法是创建一个新的WPF项目并复制所有内容。 如果它是一个非常大的项目(你喜欢冒险),你可以打开项目文件的XML(卸载项目,然后用XML编辑原始的csproj文件)

在此处输入图像描述

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

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

或者,您可以在csproj文件之间复制并粘贴文件/文件夹XML(小心)以快速“从头开始重建整个项目”,因此不必担心这样做。