C# - System.Windows.Forms - 发生类型加载异常

C# - System.Windows.Forms - A type load exception has occurred

完整脚本(下面有更多详细信息)

using System;
using System.Collections.Generic;
using System.Text;
using UnityEngine;
using System.IO;
using System.Windows.Forms;

namespace BuildShare
{
    class BuildSaveHandler
    {
        public static void ExportSaveToFile(Build.BuildSave save)
        {
            SaveFileDialog SaveToFile = new SaveFileDialog();
            SaveToFile.FileName = save.saveName + ".txt";
            SaveToFile.Filter = "Text File | *.txt";
            SaveToFile.ShowDialog();

            if (SaveToFile.ShowDialog() == DialogResult.OK)
            {
                StreamWriter writer = new StreamWriter(SaveToFile.OpenFile());
                writer.WriteLine(JsonUtility.ToJson(save));
                writer.Dispose();
                writer.Close();
            }
        }
    }
}

当我 运行 ExportSaveFile 时,我得到 "Could not load type 'ThreadContext' from assembly 'System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'"。我只是通过调用 ExportSaveFile(等)运行 它。我可能缺少必需的程序集吗?我 运行 从中安装应用程序的文件夹只能访问 System.Windows.Forms.dll + 其他所需的程序集。

这是一个单独的 C# 项目,正在编译成一个 dll。它使用 4.61 .Net 框架。

您不能在 Unity3D 中使用 SaveFileDialog(或任何 System.Windows.Forms 对话框)。

而是使用 EditorUtility.SaveFilePanel