【问题标题】:New Class Item in Visual Studio 2017 not detected未检测到 Visual Studio 2017 中的新类项
【发布时间】:2023-03-25 05:25:01
【问题描述】:

注意:新添加的类/文件属于 Xamarin.Android 项目,并从另一个项目中引用。


使用 Add > New Item 命令将新类/文件 NewClass/NewClass.cs 添加到特定文件夹后,未检测到由编译器,由错误指示:

"找不到类型或命名空间'NewClass'(您是否缺少 using 指令或程序集引用)?

注意:我确保新类型已公开

添加NewClass的项目构建成功。错误发生在引用项目中(在单独的命名空间和程序集中)。

在清理解决方案并首先构建引用的项目失败后,我尝试了以下方法:

  1. NewClass 的定义复制到现有文件中,并在 NewClass.cs 中注释了原始文件 - 已修复错误。
  2. 通过注释掉复制的定义并取消注释 NewClass.cs 中的定义,将定义切换回原始位置 - 返回错误。
  3. NewClass 的定义复制到另一个现有文件中,并在 NewClass.cs 中注释了原始文件 - 已修复错误。
  4. 通过注释掉复制的定义并取消注释 NewClass.cs 中的定义,将定义切换回原始位置 - 错误未返回。

是否可以执行手动操作来确保编译器成功发现新添加的类?清理和重建不起作用,重新打开解决方案也不起作用。

【问题讨论】:

  • 您是否确定在使用NewClass 的项目中引用了定义NewClass 的项目?另外,您是否确定 NewClass 已在适当的命名空间中定义,并且该命名空间已在您要使用 NewClass 的文件中使用?
  • @AlyEl-Haddad NewClass.csNewClass 的定义现在可以工作(出于某种原因),所以是的,语法和语义是正确的。
  • 这听起来很像您的命名空间命名问题。检查您是否在命名空间中打错了字。
  • @Sach 我在特定文件夹上使用了 Add > New Item 来查看是否会实际生成基于文件夹结构的命名空间,并且确实如此(因为文件夹之间的一致性结构和命名空间只是一个约定)。我这样做而不是复制和粘贴现有文件(像往常一样)作为快速实验。
  • 我不知道是不是你的情况,但是当向文件夹添加类时,命名空间从默认的Namespace 更改为Namespace.FolderName。尝试删除.FolderName

标签: c# visual-studio xamarin.android


【解决方案1】:

我相信你最初使用了不同的模板(class 除外)并重命名,或者类似的东西,所以构建操作不正确。

右键单击文件并点击Properties。在“属性”窗口中,确保将 Build Action 设置为 Compile

作为最后的手段,复制您的代码,删除文件,添加一个同名的新文件,然后将代码粘贴回去。

【讨论】:

  • 我确实比较了属性作为故障排除措施,除了“文件名”和“完整路径”之外,它们都是相同的(设置了“构建操作”编译 )。
  • @sαmosΛris:我明白了。您确定该文件是项目的一部分吗?
  • 如果您发布类定义的代码示例、编译器中断的代码、VS 解决方案资源管理器树的快照和“文件属性”窗口的快照,将会很有用。
  • 如果我可以在示例解决方案中复制该问题,那么我将添加一些编辑。我已经在这篇文章上花费了太多时间。
猜你喜欢
  • 1970-01-01
  • 2018-06-19
  • 2017-10-18
  • 2018-06-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-02-18
相关资源
最近更新 更多