[英]Ambiguous reference intellisense error from Resource.Designer.cs
我在Visual Studio 2017上开发时遇到了一个奇怪的错误,我已经能够忽略一段时间,但现在开始真的让我感到烦恼 。
我将此问题称为错误而不是错误,因为我仍然可以在Visual Studio中构建我的项目并将它们部署到我的开发设备,而不会出现构建输出中的错误或警告。 这似乎可以忽略一点,但随着时间的推移它已经成为一个问题,因为我的intellisense用红色强调它作为一个错误
每次我引用Resource类的属性。 正如你可能猜到的那样,我引用了很多这个类,Visual Studio编辑器最终变得混乱了这些“错误”,它们(a)阻碍了我在代码中发现实际错误的能力,并且(b)让我无法理解......
。
.csproj配置文件包含标记:
<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>
6/6/2018更新
如果你有ReSharper,你很可能会忽略我下面描述的每个项目解决方案,而只需安装最新版本(目前是ReSharper 2018.1.2)。 显然,底层问题是由先前版本中的错误引起的。 升级为我解决了这个问题。
有关更多信息,请参阅youtrack.jetbrains.com/issue/RSRP-469636 。
感谢@davidbauduin在Xamarin论坛上获取此信息。
我相信我已经找到了根本问题,并有一个可行的解决方案。
将以下内容添加到.csproj文件中的<PropertyGroup>
部分:
<AndroidUseManagedDesignTimeResourceGenerator>False</AndroidUseManagedDesignTimeResourceGenerator>
虽然以前版本的Visual Studio默认关闭了该功能,但最新的VS2017更新(15.7.3)已打开。 该功能会生成第二个Resources.Designer.cs文件,导致模糊的引用问题。
您可以通过将智能感知错误悬停在资源常量上进行验证,右键单击,选择“转到定义”,然后选择第一个项目,该项目将转到Resource.Designer.cs文件。 如果您重复,但选择第二个,您将被带到另一个Resource.Designer.cs文件。 其中一个指向obj \\ Debug \\ designtime \\ Resource.Designer.cs文件。 通过如上所述将该功能设置为False,将不会生成obj \\ Debug \\ designtime路径中的Resource.Designer.cs文件。
https://github.com/dotnet/project-system/blob/master/docs/design-time-builds.md#design-time-builds
希望这可以帮助!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.