我们有同时具有vb和c#项目的大型解决方案。我们正在将一些vb转换为c#。 转换后,使用vs2017项目打开解决方案时,仍显示为vb。我们可以构建它,但是代码不可用。 我们已修复-从解决方案中删除项目,然后重新添加它。 Voila-显示为csproj。但这会产生新的问题-由于我们使用的是DLL引用,因此我们必须手动设置构建顺序。删除项目时,构建顺序将中断。
我的想法是解决方案必须在某处缓存。我删除了.vs
,清理了解决方案,删除了所有obj
文件夹,无论我清理了什么,直到重新添加项目,C#项目才会显示为vb项目。我还检查了c:\users\username\...
中是否有与我的解决方案相关的文件,但没有发现任何内容。
我讨厌多次重新添加并修复构建顺序(转换不会一次全部发生)。为什么VS无法立即识别文件?重新添加后,项目文件不会更改,解决方案也没有任何不同的迹象。
答案 0 :(得分:0)
发现了问题
解决方案文件中的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}"
是项目ID GUID。
因此,在解决方案中,将扩展名vbproj
更改为csproj
时,我们还需要将GUID更改为正确的扩展名。这样就解决了这个问题。