ASP.NET嵌套命名空间项目无法编译,Visual Studio 2017如何修复?
ASP.NET项目命名空间解析问题解决方案
检查项目文件(.csproj)配置
手动打开项目的.csproj文件,确认v2文件夹下的所有类文件、Web窗体文件都已正确包含在项目中。有时候添加文件夹后VS可能没有自动将文件纳入项目,需要确保类似以下的节点存在:<Compile Include="v2\SqlServer.cs" /> <Compile Include="v2\DataObject.cs" /> <Content Include="v2\SomePage.aspx" /> <Compile Include="v2\SomePage.aspx.cs"> <DependentUpon>SomePage.aspx</DependentUpon> </Compile>同时检查是否有误将v2下的文件指定到BackOfficeAPI命名空间的配置。
验证命名空间一致性
再次确认v2文件夹内所有文件的命名空间声明严格为BackOfficeAPI2,包括Web窗体的代码后置文件(.aspx.cs)和设计文件(.aspx.designer.cs),设计文件中的控件声明命名空间必须和代码文件一致,否则会导致解析失败。清理并重建项目
执行以下操作彻底清理项目:- 删除项目根目录下的
bin和obj文件夹 - 在VS2017中点击菜单「生成」→「清理解决方案」
- 重启Visual Studio,重新加载项目后执行「生成解决方案」
- 删除项目根目录下的
重置Visual Studio的IntelliSense缓存
VS的IntelliSense缓存可能出现异常,执行以下操作重置:- 点击菜单「工具」→「选项」→「文本编辑器」→「C#」→「高级」
- 选择「重置所有设置」,或者直接删除VS缓存目录(路径一般为
%LOCALAPPDATA%\Microsoft\VisualStudio\15.0_*\ComponentModelCache)
确认项目目标框架版本
检查项目目标框架是否和原正常运行时一致,不同框架版本的命名空间解析逻辑可能存在差异,可在项目属性的「应用程序」选项卡中查看和修改目标框架。排查命名空间冲突
确认父命名空间BackOfficeAPI中没有和BackOfficeAPI2同名的类,避免命名冲突导致的解析错误。如果有重名类,需明确指定完整命名空间引用。
内容的提问来源于stack exchange,提问作者Mark
相关产品推荐
相关产品推荐

