我将这个问题称为“bug”,而不是“error”,因为我仍然能够在Visual Studio中构建我的项目,并将其部署到我的开发设备上,而构建输出中也没有任何错误或警告。这可能看起来可以暂时忽略,但随着时间的推移,它已经成为一个问题,因为我的智能感知将其标记为红色错误。
每次我从Resource类引用属性时,如你所料,我经常引用这个类,Visual Studio编辑器最终会变得杂乱无章,出现这些“错误”,这 (a) 阻碍了我在代码中找到实际错误的能力,(b) 让我感到非常烦恼...
"错误"调查
- 如最后一张图片所示,智能感知会捕捉到Resource类中每个属性的一个“模棱两可的引用”。当我检查我的Resource.Designer.cs文件时,我只看到了一个引用,但是却收到了第二个错误。
.
现在它告诉我出现了一个“已声明相同名称成员”的错误。这让我相信可能存在第二个Resource.Designer.cs文件,但我的解决方案资源管理器和Windows资源管理器都只显示一个。
尝试的解决方法
- 将默认命名空间InventoryApp更改为InventoryApp.Resources。这样可以消除错误,但是在构建项目时,它会将文件中的命名空间恢复为默认值,并且错误会再次出现。有人告诉我这是大忌。
- 删除Resource.Designer.cs文件,从项目中删除"obj"和"bin"文件夹,清理并重建解决方案,然后将新的Resource.Designer.cs文件添加回我的解决方案。这对解决问题没有任何帮助。
- 从头开始创建一个全新的项目。即使从Visual Studio模板中创建了一个空白的Android应用程序,错误仍然存在。这引出了一个问题:这是Xamarin.Android安装的问题吗?
附注
- The Resource.Designer.cs file's Build Action is set to "Compile"
The .csproj config file contains the tags:
<AndroidResgenFile>Resources\Resource.Designer.cs</AndroidResgenFile> <AndroidResgenClass>Resource</AndroidResgenClass> <GenerateSerializationAssemblies>Off</GenerateSerializationAssemblies> <AndroidUseLatestPlatformSdk>false</AndroidUseLatestPlatformSdk> <TargetFrameworkVersion>v7.1</TargetFrameworkVersion> <AndroidManifest>Properties\AndroidManifest.xml</AndroidManifest> <MonoAndroidResourcePrefix>Resources</MonoAndroidResourcePrefix> <MonoAndroidAssetsPrefix>Assets</MonoAndroidAssetsPrefix>
Android.Resource
引起,请检查您的使用中是否有对Android
的引用,并将其删除(我喜欢完全限定任何使用Android
命名空间的内容,以避免任何歧义)。不过老实说这只是一个小概率事件;我倾向于支持 SushiHangover,这似乎只是另一个令人烦恼的 Xamarin bug。 - Matthew Andrews