首页 > 编程语言 >Unity关于引用.Net或其他C# dll的问题。(我是用的版本是2018.3)

Unity关于引用.Net或其他C# dll的问题。(我是用的版本是2018.3)

时间:2022-10-13 15:24:57浏览次数:79  
标签:文件 2018.3 C# System dll Windows Unity Net

 

 首先,因为我是用到了.Net WinForm中的中的一个System.Windows.WinForms中的类(OpenFileDialog)就是打开就是选择资源的一个对话框。ALT + Enter可以直接在VS中引用,但是在Unity 编辑器下就会提示如下提示

 

 

但是这还好,最起码最终还是可以弹出资源对话框的。

如下

 

 

 一切正常,可以选中资源文件。

有一个方法可以不弹出这个提示框。找到System.Windows.WinForms.dll动态库,把这个库文件放在工程文件的根目录,就不会有这个提示了。

 

 

以上就是在Unity Editer下的测试结果,看是一切正常了。

 

下面开始打包Windows程序包

打包一切正常,运行一切正常,执行....................没有任何反应,在程序里加入try  catch发现报错了,错误信息:Operation is not supported on this platform.

毙了狗啊。。。。。

 

后面在网上查了好久,发现有两种方法,我整理了一下:

 

  1. 找到System.Windows.WinForms.dll库文件,把他复制到Unity的安装目录(我的目录为:Editor\2018.3.0f2\Editor\Data\Mono\lib\mono\2.0\)这里面可能已经存在一个相同的库文件了,可以把它备份一份出来后覆盖他。

Unity编辑器设置.Net Standard 2.0

 

 

打包。。。。。打包没问题,但是还是会有(Operation is not supported on this platform.)这个异常提示

 

  2. 在Unity的资源根目录创建一个 plugins的文件夹,将System.Windows.WinForms.dll库文件复制到这个文件夹中,其实我到这一步编辑器就已经爆红了。。。。。。显然也不正确。

 

下面说一下打包后成功的方法

其实官方文档中有这一部分介绍  Unity官方解释:Unity - 手动:引用其他类库程序集 (unity3d.com)

 大概意思就是:Unity使用.Net 4.x版本时会引用一小部分的程序集

如:

  • mscorlib.dll
  • System.dll
  • System.Core.dll
  • System.Runtime.Serialization.dll
  • System.Xml.dll
  • System.Xml.Linq.dll

但是我们使用的不在这里,虽然在VS中可以直接ALT+Enter引用,但是Unity这边找不到。如果想让Unity找到并链接到这个dll库,就需要告诉Unity你要链接哪个DLL库。

csc.rsp 添加一个这个文件和DLL库文件就可以解决。

 

详细步骤,其实很简单,就2步。

第1步:在Assets目录下创建一个csc.rsp文件

第2步:在文件中输入

-r:System.Windows.WinForms.dll

 完成。

记住,要使用.Net 4.x   

打包测试,没问题。

 

 

  • 最后再说一点,很坑。就是如果最开始先设置的是 .Net 4.x ,然后再新建的csc.rsp文件和添加库文件。此时还没编译就会报错

     

     我猜测可能是要先添加csc.rsp文件与和在里面添加-r:XXX.XXX.XXX.dll,然后再切换到.Net 4.x  Unity编辑器会重新去加载csc这里文件里的库的配置信息。如果最开始就切换到了4.x再重新切换一下就好了。

 

标签:文件,2018.3,C#,System,dll,Windows,Unity,Net
From: https://www.cnblogs.com/showonce/p/16788223.html

相关文章

  • 关于用什么编译器写c语言
    前言:用了一个月的vscode写c的体验真心不推荐vscode写c语言,用了一个多月vscode上配置了c和python,还要下什么mingw,去b站搜索视频推荐第一个安装教程教你下载的32位,配置就是......
  • var 、let 和 const 的区别
    var、let和const的区别 var没有块级作用域,而let声明的范围是块作用域; 一对大括号就是一个块级作用域var类似全局变量let类似局部变量优先考虑使用let......
  • vs2022加载github copilot报错--- 引发异常的上一位置中堆栈跟踪的末尾 ---///NotSign
    vs2022加载githubcopilot报错---引发异常的上一位置中堆栈跟踪的末尾---///NotSignedIn,如图所示  问题在于网络上,去"C:\Windows\System32\drivers\etc\hosts"修改g......
  • ICMP协议
    网际控制报文协议ICMP有两种:ICMP差错报告报文,ICMP询问报文。ICMP差错报告报文包括四种:①终点不可达:主机或路由器不能交付数据报就向源点发送终点不可达报文。②时间超过......
  • drf之rabc,后台管理simplui
    一、过滤类和排序类源码分析#我们之前在学习排序和过滤类的时候是在继承了GenericAPIView+ListModelMixin的视图类中才能够配置的#然后在视图类中的filter_backends......
  • c语言九9(2) 数组
    指针常量指针与指针常量intx=10086;constint*p=&x;/*常量指针(指向常量的指针)const修饰值,值变成了常量,const常量能不能改的问题别问我!*/p=100;*p=100;......
  • P2467 地精部落 P2885 [USACO07NOV]Telephone Wire G
    P2467SDOI2010地精部落称满足条件的序列为"波动序列"性质1:如果一个波动序列中i和i+1不相邻,则交换这两个数后仍然是波动序列性质2:将一个波动序列反转,翻转后......
  • XCTF---MISC---来自银河的信号
    XCTF---MISC---来自银河的信号 flag:flag{M00nc@ke_Fes7iva1_15_Coming!}解题步骤: 1、观察题目,下载附件,了解题目内容2、根据描述,是一段音频文件,有可能是音频隐写,把......
  • css3字体使用
    @font-face{font-family:'kaiti';src:url('../font/KaiTi.woff')format('woff'),url('../font/KaiTi.ttf')format('truetype'),url('../font/KaiTi.svg#GE_SS......
  • Python 为什么不支持 switch 语句?
    本文出自“Python为什么”系列,请查看​​全部文章​​在这篇文章里,我们会聊一聊为什么Python决定不支持switch语句。为什么想要聊这个话题呢?主要是因为switch在其它语......