我在VS 2017中遇到了一个令人难以置信的令人讨厌的问题。某种程度上,这些问题总是困扰着我。
我今天打开了我的解决方案,其中包含几个项目,发现一个项目无缘无故丢失(当我打开解决方案时,它总是存在的。)
因此,我只需右键单击“解决方案资源管理器”并添加一个现有项目(简单)即可重新添加该项目。
现在,当我尝试运行该项目(OrderGetter
)时,它无法使用
找不到类型或名称空间名称'Utilities'(您是否缺少using指令或程序集引用?)
Utilties
是我的解决方案中的另一个项目:
它确实存在并且过去一直有效。为什么这个问题现在必须发生并发生?
Eveb weirder,错误不断从错误窗口中消失,但是当我尝试构建时,弹出窗口告诉我我有错误,我必须检查输出窗口以查看发生了什么。
我尝试了以下方法:
csproj
文件中删除引用,然后在重新加载项目之前将其重新添加到VS UI中
我可以在Solution.sln
中看到以下内容:
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MVCQCPage", "MVCQCPage\MVCQCPage.csproj", "{FF699AAD-EA97-4984-9DB2-70F2CA41CA16}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SharedLibrary", "SharedLibrary\SharedLibrary.csproj", "{0E6DE04C-97A2-4C18-AB83-098C383DF9C7}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AspNet.Identity.SQLite", "..\..\..\..\Downloads\Firefox\Asp.Net.Identity.SQLite-master\Asp.Net.Identity.SQLite-master\AspNet.Identity.SQLite\AspNet.Identity.SQLite.csproj", "{35DAC40A-38D0-43BD-8DCF-34E4061F0A75}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AspNet.Identity.SQLite.EF", "..\..\..\..\Downloads\Firefox\Asp.Net.Identity.SQLite-master\Asp.Net.Identity.SQLite-master\AspNet.Identity.SQLite.EF\AspNet.Identity.SQLite.EF.csproj", "{D34D1279-F264-4A90-B4A5-2AAE4DE5D0D6}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PublicSite", "..\..\..\..\Downloads\Firefox\Asp.Net.Identity.SQLite-master\Asp.Net.Identity.SQLite-master\PublicSite\PublicSite.csproj", "{18D9B36C-50A0-4753-9522-A1C282C70B3E}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Utilities", "Utilities\Utilities.csproj", "{4473F366-D894-425D-AFE2-75EC883AC0E7}"
EndProject
Project("{F5034706-568F-408A-B7B3-4D38C6DB8A32}") = "Scripts", "Scripts\Scripts.pssproj", "{6CAFC0C6-A428-4D30-A9F9-700E829FEA51}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TurboTime", "TurboTime\TurboTime.csproj", "{05FFA6B7-8ACE-4FDF-83DB-75FBF7C46E64}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TurboTimeConsole", "TurboTimeConsole\TurboTimeConsole.csproj", "{F5B79240-155C-4E8B-B8F7-BFFBC9EFE9EB}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "OrderGetter", "OrderGetter\OrderGetter.csproj", "{BBD80E29-721A-4423-A21E-4B6C51D153FF}"
EndProject
在Utilites.csproj
中,我看到GUId是
<ProjectGuid>{4473F366-D894-425D-AFE2-75EC883AC0E7}</ProjectGuid>
OrderGetter.csproj
正在引用
<ProjectReference Include="..\Utilities\Utilities.csproj">
<Project>{4473f366-d894-425d-afe2-75ec883ac0e7}</Project>
<Name>Utilities</Name>
</ProjectReference>
因此,GUID相同,除了一个是大写字母,另一个是小写字母。是什么意思?
您可以清楚地看到确实引用了该项目:
为什么会这样?
答案 0 :(得分:0)
如果上述方法无效,则可以在文本编辑器中打开解决方案以及项目文件,并检查项目文件是否设置了正确的引用。
每个项目都有一个唯一的GUID
<ProjectGuid>{12D33B77-30A1-4D07-9DA4-8789AF6746F5}</ProjectGuid>
引用项目使用此GUID以及引用该项目的路径:
<ProjectReference Include="..\Data Binding Demo\C#\databindinglab.csproj">
<Project>{12D33B77-30A1-4D07-9DA4-8789AF6746F5}</Project>
<Name>databindinglab</Name>
</ProjectReference>
检查受影响的项目,并确保文件名和GUID匹配。
如果这样做没有帮助,请删除所有引用,保存并关闭项目,然后再次添加每个引用。