Почему я не могу добавить определенные типы файлов в проекты VS2010?
Я пытаюсь добавить WPF ResourceDictionary в проект С#, который был создан некоторое время назад. Проект первоначально не был проектом WPF, но теперь мне нужно включить в него некоторые ресурсы WPF.
Когда я нажимаю правой кнопкой мыши проект и выбираю "Добавить", ResourceDictionary не является опцией. Даже если я открою диалоговое окно Modal и перейду туда, где должен существовать тип ResourceDictionary (рядом с другими типами WPF), его нет.
Кроме того, когда я вручную добавляю XAML файл с синтаксисом ResourceDictionary для проекта, я не могу его программно загрузить с помощью синтаксиса WPF Application.Load(uri), поэтому я чувствую, что VS2010 мешает мне добавить файл для причина.
Как я могу сделать мой проект "способным" добавить ResourceDictionary без повторного создания всего проекта с нуля в качестве проекта WPF и повторного добавления каждого файла с нуля?
Кроме того, что определяет типы файлов, которые могут быть добавлены в проекты, поэтому я могу избежать подобных проблем в будущем? Надеюсь, это что-то простое, как строка, которую мне нужно добавить в файл AssemblyInfo.cs.
Ответы
Ответ 1
Закройте проект. Создайте новый проект, относящийся к типу проекта WPF, который вы использовали бы. Затем откройте новый файл .csproj в блокноте. Найдите элемент ProjectTypeGuids
. Скопируйте эти GUID в буфер обмена. Откройте существующий файл .csproj в блокноте. Добавьте эти GUID в этот файл ProjectTypeGuids
. (Проверьте наличие дубликатов.) Перезагрузите проект в Visual Studio. Теперь вы сможете добавлять все типы файлов WPF.
PS: Я не делал этого с WPF специально, но у меня есть другие типы проектов, и он работал без проблем.
Я считаю, что GUIDS одинаковы для всех, поэтому нужные вам значения должны быть: {60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}
... это должно сэкономить вам шаг создания нового проекта.
Ответ 2
Думаю, ваш лучший выбор - создать новый проект WPF и скопировать все. Если это очень большой проект (и вы чувствуете себя авантюрно), вы можете открыть XML файлов проекта (выгрузить проект, а затем отредактировать исходный файл csproj в XML)
![enter image description here]()
Затем скопируйте разделы ItemGroup
и убедитесь, что соответствующие исходные файлы существуют в новом каталоге проекта. Удачи!
Ответ 3
Попробуйте создать пустой проект WPF, а затем разделите файлы .csproj(они просто простой XML) для этого и вашего проекта, чтобы увидеть, какие отличия есть - кроме списков файлов и нечетного параметра компилятора, вы вполне можете найдите идентификатор GUID или другую запись, которая идентифицирует тип проекта, который вы сможете скопировать/вставить для "обновления" вашего проекта (после того, как вы, конечно же, сделаете резервную копию вашего существующего файла проекта!)
В качестве альтернативы вы можете скопировать и вставить XML файл/папку XML (тщательно) между файлами csproj, чтобы быстро "перестроить весь проект с нуля", поэтому этого не нужно бояться делать.