You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Unity 2019.3.7f1 iOS打包失败:未引用System.Windows.Forms.dll却报错

解决Unity iOS打包时System.Windows.Forms.dll引用报错问题

我经常碰到这类“明明自己没用到却报错”的情况——大概率是第三方插件、编辑器工具或者间接依赖的包悄悄引入了这个程序集。给你几个实用的排查和解决步骤:

  • 先定位引用来源
    别瞎猜,直接用全局搜索工具(比如用VS Code打开项目根目录,搜索System.Windows.Forms),看看哪个脚本、插件配置文件里出现了这个引用。另外,去Edit > Project Settings > Player > Other Settings > Configuration里检查Api Compatibility Level,如果选的是.NET Framework,改成.NET Standard 2.0试试——桌面版的.NET框架会带很多iOS不支持的程序集,切换到标准库能减少这类问题。

  • 排查第三方插件
    很多编辑器专用的插件(比如批量导出工具、自定义编辑器窗口)会在代码里引用System.Windows.Forms,哪怕你只在编辑时用,Unity打包时也会检测到。试试逐个禁用最近添加的插件,打包测试,找出问题插件。找到后,把这个插件移到Editor文件夹里,Unity打包时会自动忽略编辑器目录下的代码,就不会带进去了。

  • 手动排除程序集(谨慎使用)
    如果实在找不到来源,可以在Assets目录下新建一个link.xml文件,强制Unity打包时跳过这个程序集。文件内容如下:

    <linker>
      <assembly fullname="System.Windows.Forms" ignore="true" />
    </linker>
    

    注意:用这个方法前要确认没有任何运行时代码依赖它,不然iOS运行时会崩溃。

  • 清理Unity缓存
    有时候缓存抽风也会导致奇怪的引用问题。关闭Unity,删除项目根目录的Library文件夹(记得先备份项目!),然后重新打开Unity让它重新生成缓存,再试打包。

  • 检查NuGet包依赖
    如果你用了NuGet管理包,有些包可能偷偷依赖System.Windows.Forms。打开NuGet包管理器,查看每个包的依赖关系,把不必要的包删掉,或者换成iOS兼容的替代包。

内容的提问来源于stack exchange,提问作者Dima Hubenko

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.07 10:12:33