在升级到XCode 8.3.1后,最新稳定版的Xamarin iOS的Intellisense出现了问题。

8

我的iOS应用程序最近一直在运行xCode 7.x的构建机上进行构建。现在我们正在准备一个使用xCode 8.3.1的版本。最新的Xamarin Studio iOS稳定版与xCode 8.3.1似乎认为我的所有代码都是无效的。几乎每个类和每一行都有某种错误,尽管代码完全可编译并部署。请注意屏幕截图右侧的语法栏是红色的。在更新到最新的稳定版Xamarin Studio和xCode之前,这种情况并没有发生。

enter image description here enter image description here

Xamarin 版本:

Xamarin Studio Community
Version 6.3 (build 863)
Installation UUID: 87149f4b-0f09-4f27-8133-582330f3df28
Runtime:
    Mono 4.8.1 (mono-4.8.0-branch/22a39d7) (64-bit)
    GTK+ 2.24.23 (Raleigh theme)

    Package version: 408010000

NuGet
Version: 3.5.0.0

Xamarin.Profiler
Version: 1.4.0
Location: /Applications/Xamarin Profiler.app/Contents/MacOS/Xamarin Profiler

Apple Developer Tools
Xcode 8.3.1 (12170)
Build 8E1000a

Xamarin.Android
Version: 7.2.0.7 (Xamarin Studio Community)
Android SDK: /Users/joeyz/Library/Developer/Xamarin/android-sdk-macosx
    Supported Android versions:
        5.0 (API level 21)
        6.0 (API level 23)
        7.0 (API level 24)
        7.1 (API level 25)

SDK Tools Version: 25.2.5
SDK Platform Tools Version: 25.0.4
SDK Build Tools Version: 25.0.2

Java SDK: /usr
java version "1.8.0_101"
Java(TM) SE Runtime Environment (build 1.8.0_101-b13)
Java HotSpot(TM) 64-Bit Server VM (build 25.101-b13, mixed mode)

Android Designer EPL code available here:
https://github.com/xamarin/AndroidDesigner.EPL

Xamarin.Mac
Version: 3.2.0.175 (Xamarin Studio Community)

Xamarin.iOS
Version: 10.8.0.175 (Xamarin Studio Community)
Hash: a04678c2
Branch: d15-1
Build date: 2017-03-28 14:05:38-0400

Xamarin Inspector
Version: 1.2.2
Hash: b71b035
Branch: d15-1
Build date: Fri, 21 Apr 2017 17:57:12 GMT

Build Information
Release ID: 603000863
Git revision: a2163670efe259c85cd8f335d95b175068fbbe2a
Build date: 2017-04-03 14:33:15-04
Xamarin addins: 2045d688ea1420e0381b473360ca62a763eb7d04
Build lane: monodevelop-lion-d15-1

Operating System
Mac OS X 10.12.4
Darwin Pako-2.local 16.5.0 Darwin Kernel Version 16.5.0
    Fri Mar  3 16:52:33 PST 2017
    root:xnu-3789.51.2~3/RELEASE_X86_64 x86_64

enter image description here

编辑:

因此,Visual Studio for Mac在智能感知方面也存在同样的问题。唯一的区别是它实际上会为每个红线给出一个错误提示(与Xamarin Studio不同,后者无论有没有红线都可以构建)。这毫无意义。例如,尽管我已经使用了“using System;”,但它仍然会说“预定义类型'System.Booleon'未定义或未实现”。

[1]: https://i.stack.imgur.com/Aahaf.png

1个回答

1

我记得一个在2014年列出的旧漏洞,我找不到bugzilla链接,但本质上它指出了本地构建和自动化构建的相同问题,我认为有一个人也强调了类似的问题。早期的解决方法之一是将Xamarin回滚到较旧的版本并进行更新,或者是卸载并重新安装。虽然这不是远程可行的,但应该可以解决问题。完全有可能删除某些缓存文件也可以解决问题,但很难确定哪些与此问题相关。

编辑:

因此,我花了一些时间寻找一些各种修复程序,可以帮助解决问题,显然我不知道您的构建机器的确切设置,但以下是几种经过验证的方法,可解决常见的智能感知问题。

1. 确保“自动列出成员”和“参数信息”都被选中,在:工具 -> 选项 -> 文本编辑器 -> 所有语言 -> 通用

2. 只需删除“ReflectedSchemas”文件夹。位置取决于使用的Visual Studio版本,但通常在此区域中:%AppData%\Microsoft\VisualStudio\11.0\ReflectedSchemas

3. 重置VS设置: 工具->导入和导出设置->重置所有设置。

4. 刷新Intellisense本地缓存: 编辑->Intellisense->刷新本地缓存

5. 在项目中删除Psess文件。

这些都是尝试恢复Intellisense信息的有效方法。它们更像是一种尝试性的全面方法。如果这些方法都不起作用,请告诉我,我们会尝试想出更多解决方案。


@lampshade,我在我的答案中添加了几个可能的解决方案,请试一试。 - JoeTomks
谢谢您的建议!我正在使用MacOS Sierra上的Xamarin Studio,而不是Windows上的Visual Studio。我会尝试在XS中找到与您建议/文件相对应的等效设置。看起来Visual Studio正在Mac上进行测试。我自己还没有尝试过,因为我的同事尝试过并遇到了一些问题。 - LampShade
@lampshade 啊,那种情况下尝试删除 <solution_name>.userprefs 文件并重新打开 Xamarin Studio,我知道这在过去解决了一些人的问题。 - JoeTomks
似乎没有帮助:-( 奇怪的是,我有一个Android解决方案,没有这个问题。只有这个iOS解决方案有这个问题。虽然这两个解决方案非常不同。Android解决方案使用“多平台->可移植库”,而iOS解决方案使用“多平台->共享项目”。我想知道共享项目中是否有什么不同可能导致了这个问题。 - LampShade
所以我在Xamarin Studio中重新构建了整个解决方案(很多工作...)。这修复了它。因此,显然是由于缺乏向后兼容性而导致的Xamarin错误。我不太确定如何给他们一个修复此错误的示例,而不发送所有我的代码(这将是隐私/安全风险)。我认为该错误可能出现在Xamarin Studio生成CSPROJ或SLN文件的方式中。他们可能更改了某些内容,并没有完全QA向后兼容性。但这只是一个猜测。我尝试对我的CSPROJ和SLN文件进行差异比较,但它们太大了,无法进行比较。 - LampShade
显示剩余4条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接