qidao123.com技术社区-IT企服评测·应用市场

标题: Unity关于引用.Net或其他C# dll的问题。(我是用的版本是2018.3) [打印本页]

作者: 东湖之滨    时间: 2022-10-13 16:07
标题: Unity关于引用.Net或其他C# dll的问题。(我是用的版本是2018.3)
 
 首先,因为我是用到了.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.

毙了狗啊。。。。。
 
后面在网上查了好久,发现有两种方法,我整理了一下:
 
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版本时会引用一小部分的程序集
如:
但是我们使用的不在这里,虽然在VS中可以直接ALT+Enter引用,但是Unity这边找不到。如果想让Unity找到并链接到这个dll库,就需要告诉Unity你要链接哪个DLL库。
csc.rsp 添加一个这个文件和DLL库文件就可以解决。
 
详细步骤,其实很简单,就2步。
第1步:在Assets目录下创建一个csc.rsp文件
第2步:在文件中输入
  1. -r:System.Windows.WinForms.dll
复制代码
 完成。
记住,要使用.Net 4.x   
打包测试,没问题。
 
 
 

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!




欢迎光临 qidao123.com技术社区-IT企服评测·应用市场 (https://dis.qidao123.com/) Powered by Discuz! X3.4