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

时间:2011-04-04 20:45:32

标签: c# wpf visual-studio-2010

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

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

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

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

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

3 个答案:

答案 0 :(得分:38)

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

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

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

答案 1 :(得分:2)

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

enter image description here

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

答案 2 :(得分:0)

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

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