Решение не распознает csproj как проект c # - PullRequest
0 голосов
/ 18 сентября 2018

У нас есть большие решения, которые имеют проекты vb и c #.Мы находимся на пути преобразования некоторых из VB в C #.После преобразования, когда решение открывается с использованием vs2017, проект по-прежнему отображается как vb.Мы можем построить его, но код не работает.У нас есть исправление - удалите проект из решения и повторно добавьте его.Вуаля - это показывает как csproj.Но это создает новую проблему - поскольку мы используем ссылки на DLL, мы должны вручную установить порядок сборки.Порядок сборки нарушается при удалении проекта.

Я думал, что решением должно быть где-то кеширование.Я удалил .vs, очистил решение, удалил все папки obj, независимо от того, что я очистил, до повторного добавления проекта ac # project отображается как проект vb.Я также проверил c:\users\username\... на наличие файлов, которые могут иметь отношение к моему решению, и ничего не нашел.

Я ненавижу делать повторное добавление и исправлять порядок сборки много раз (преобразования не произойдут сразу).Почему VS не распознает файл сразу?После повторного добавления файл проекта не изменяется, и решение не имеет никаких признаков чего-то другого.

enter image description here

1 Ответ

0 голосов
/ 20 сентября 2018

Обнаружена проблема

Идентификатор GUID в файле решения фактически является типом проекта GUID.

Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "projectname", "projectname.vbproj", "{7CC2FC9A-0D8F-4A26-A891-80B1D20C773D}"
EndProject

Выше Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") означает тип проекта GUID;"{7CC2FC9A-0D8F-4A26-A891-80B1D20C773D}" - это GUID идентификатора проекта.

Таким образом, когда в решении мы меняем расширение vbproj на csproj, нам также необходимо изменить GUID на правильный.Это решает проблему.

...