[英]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.