【问题标题】:Missing Photon Pun assembly reference with Visual Studio Code 1.50.1Visual Studio Code 1.50.1 缺少 Photon Pun 程序集参考
【发布时间】:2020-10-25 08:08:53
【问题描述】:

我正在使用 C# 在 PC 上开发 Unity 游戏应用程序,并使用 Visual Studio Code 作为编辑器。这些应用程序针对 PC 和 Android。多人游戏使用 Photon Pun 2。

Unity 版本是 2019.3.14F1 - 我不想继续前进,以防出现“意外问题”。

VS Code 版本是 1.48.3 - 一切都很好,没有编译错误,所有代码工作正常等等。

我愚蠢地接受了微软的建议更新 VSC,而 VS Code 到了 1.50.1。结果是 VS Code 中出现了与 Photon 代码相关的各种错误。所有这些错误都源于 'using Photon.Pun;' 行。它说“命名空间‘Photon’中不存在类型或命名空间名称‘Pun’(您是否缺少程序集引用?)”。

然而,代码在 Unity 编辑器本身中没有出现任何编译错误,并且运行良好,包括 Photon 部分。问题出在 VS Code 中。

我意识到这几乎可以肯定是 VS Code 问题,而不是 Photon,但我想知道是否有人以前遇到过这个问题并且知道如何解决它?

(这就是我不想从 2019.3.14F1 转到 2020 的原因。现在无论如何——你永远不知道会发生什么)。

【问题讨论】:

    标签: unity3d visual-studio-code photon


    【解决方案1】:

    我遇到了同样的问题。安装不同版本的 VS Code / VS Community Edition 并没有为我解决任何问题,但这确实:

    在 VS Code 中打开项目,找到所有出现的

    <ReferenceOutputAssembly>false</ReferenceOutputAssembly>
    

    *.csproj 文件中,并将它们替换为

    <ReferenceOutputAssembly>true</ReferenceOutputAssembly>
    

    【讨论】:

    • 有趣。 13 个文件出现 49 次。我还没有尝试更改它们,因为 1.48.2 一切正常。那些行/文件是由 Unity 自动编写的?我想我需要找出他们做了什么以及哪些设置(如果有的话)控制真/假标志。
    • 是的,.csproj 文件是由 Unity 生成的。您可以在首选项 -> 外部工具中强制重新生成它们。在这些文件中为其他库生成的条目引用了编译后的 DLL,而 Photon PUN 的东西只是资产存储在您的项目中转储的原始代码文件。我认为这是问题的原因。不过,我不确定为什么 Unity 会在未打开 ReferenceOutputAssembly 的情况下生成 Photon 引用。
    • 我遇到过两次这个问题。您的解决方案对我有用两次。非常感谢@4026
    【解决方案2】:

    尝试重建项目文件,切换到不同的编辑器(VS 社区版 2019 - 这很好),但没有区别 - VSC 仍然存在错误。其余的智能感知工作正常。

    最后,完全卸载 VSC 并重新安装,这样就解决了。不知道真正的错误是什么。

    【讨论】:

      【解决方案3】:

      我错了。

      今天,错误又回来了。

      原因似乎是在尝试对此进行排序的过程中,我安装了 VS Community Edition 2019 以查看是否正常(确实如此)。然后回到VSC,而且 - 那也很好。后来我卸载了 VS Community Edition 2019(大约需要 4GB)。它正在卸载将错误带回 VSC 的内容。重装了VS Community Edition 2019,又好了。

      所以,VS Community Edition 2019 安装了 VSC 需要的东西 - 但我还没有弄清楚它是什么。

      更新:

      放弃。从来没有设法找出 VSC 想要什么,没有得到什么。相反,重新安装旧版本的 VSC(来自 code.visualstudio.com/updates 的 1.48.2),一切正常。

      【讨论】:

        【解决方案4】:

        如果仍然存在此问题,您只需转到包管理器并安装“Visual Studio 编辑器包”即可修复它

        windows>包管理器> Visual Studio 编辑器的所有包/或 Unity 注册表(取决于您的统一版本)搜索

        如果已经安装,请删除并重新安装。

        【讨论】:

        • 发现这个:'问题是任何当前的 Mono 版本都不支持新的 .NET Core 3.1 SDK,所以设置“omnisharp.useGlobalMono”在 1.23 中已更改为“never” .1(参见更新日志github.com/OmniSharp/omnisharp-vscode/blob/master/…)。然而,这与基于 Mono 的开发不兼容,例如统一。在 VSC 中,转到文件 > 首选项 > 设置 > 扩展 > C# 配置。然后将“Omnisharp:使用全局单声道”更改为“始终”。我确实在 1.23.0 中发现没有问题,但是在 1.23.1 中出现了。
        【解决方案5】:

        解决了! 解决方案(这是一个 Unity 问题): 在 Unity 中,转到 Edit > Preferences > External Tools > External Script Editor,并将其指向 Visual Studio.. 为什么这么难找,我不知道。但现在我的 Photon 解决方案和命名空间正确地从 Unity 转移到 Visual Studio。哇!

        还将脚本移动到光子脚本所在的位置

        【讨论】:

          【解决方案6】:

          卸载 Visual Studio 社区并重新安装最新的 VSC 2022。它将解决问题

          【讨论】:

            猜你喜欢
            • 2012-11-04
            • 2018-07-03
            • 2010-10-01
            • 1970-01-01
            • 1970-01-01
            • 2018-08-09
            • 1970-01-01
            • 1970-01-01
            • 2014-01-27
            相关资源
            最近更新 更多