Unity独立Probobuf C#端口

Unity独立Probobuf C#端口,c#,unity3d,protocol-buffers,C#,Unity3d,Protocol Buffers,我正在尝试使用Jon Skeet在Unity项目中开发的Protobuf C#Port,但当我尝试构建和运行单机版时,总是会出错。我已经将所有的.dll文件复制到了资产中,当我从开发人员环境运行unity时,一切都运行得很顺利,但一旦我编译和构建,就会出现一个关于“文件名未知”的错误 我还没有找到解决方案,因为似乎大多数人都会在使用Marc Gravell版本的Protobuf时遇到类似的问题。我想坚持我现在使用的版本,因为我将在这个项目中使用多种语言 非常感谢您的帮助 --解决方案-- 事实

我正在尝试使用Jon Skeet在Unity项目中开发的Protobuf C#Port,但当我尝试构建和运行单机版时,总是会出错。我已经将所有的.dll文件复制到了资产中,当我从开发人员环境运行unity时,一切都运行得很顺利,但一旦我编译和构建,就会出现一个关于“文件名未知”的错误

我还没有找到解决方案,因为似乎大多数人都会在使用Marc Gravell版本的Protobuf时遇到类似的问题。我想坚持我现在使用的版本,因为我将在这个项目中使用多种语言

非常感谢您的帮助

--解决方案--


事实证明,我必须进入编辑>项目设置>播放器并将网络版本从2.0子集更改为2.0。我经常发现由于项目引用问题而出现类型初始化异常。两个最常见的原因:

  • 根据比所引用库更新的.NET版本构建应用程序(例如,Protobuf库可能是在应用程序根据.NET 4.5构建时根据.NET 4编译的)。您可以尝试通过针对与项目相同的.NET版本重新编译Protobuf libs来解决这个问题

  • 编译器假定引用存在,但在运行时它不存在。您可以通过添加对特定库的引用来修复此问题(在本例中,是带有
    RegEx
    对象的.NET库,通常是System.dll)


  • 请提供代码,非常感谢!关于项目的可比性问题,你是对的。有了这些信息,我就能够找到解决问题所需的工具。原来Unity有Net2的一个子集,我不得不将它切换到完整版本。