gpt4 book ai didi

c# - 统一: Visual Studio loses DLL reference after Unity compiles code

转载 作者:太空宇宙 更新时间:2023-11-03 14:46:35 26 4
gpt4 key购买 nike

我在 Unity 项目中使用 System.Compression.ZipFile.dll,并在 Visual Studio 项目和 Unity 编辑器中添加了引用,代码按预期编译和运行,没有问题。

但是,每当 Unity 编译代码时,DLL 引用就会从 Visual Studio 项目中删除。

因此,在 Visual Studio afterwords 中编译会出现命名空间错误。这些错误仅存在于 Visual Studio 中,因为 Unity 编辑器在实际编译代码时确实有引用。

通过将 DLL 引用重新添加到解决方案,可以修复这些错误。我想阻止这些错误出现在 Visual Studio 中,因为它们很烦人。

当 Unity 实际编译代码时,如何防止从 Visual Studio 项目中删除引用?

如果有帮助,我正在使用 Visual Studio Community 2015 和 Unity Editor 2018.2.14f1,在 Windows 8.1 上,.NET 版本 4.7.1

编辑:

我的 mcs.rsp 文件包含:-r:System.IO.Compression.FileSystem.dll基于统一论坛线程。这很有趣,因为它不是预期的 DLL,但它仍然有效。

添加 -r:System.IO.Compression.ZipFile.dll 将导致:错误 CS0006:找不到元数据文件“System.IO.Compression.ZipFile.dll”。

相关错误是:

CS1069 在命名空间“System.IO.Compression”中找不到类型名称“ZipFile”。此类型已转发到程序集 'System.IO.Compression.FileSystem,Version=4.0.0.0,Culture=neutral,考虑添加对该程序集的引用。

错误 CS0006 找不到元数据文件 ProjectFolder\Temp\bin\Debug\Assembly-CSharp.dll'

Unity 已正确配置为使用 .NET 4.x

最佳答案

您得到的行为是预期的。

让我们来看看 official way实现您的目标:

  1. 将您的 DLL 复制到 Assets 目录(可选)及其关联的 IntelliSense XML 和 PDB 文件,以便 Unity 从中生成 MDB 文件
  2. Unity 重建项目和生成的 Visual Studio 解决方案

由于第 2 步重新生成了 Visual Studio 解决方案,您对其所做的所有自定义都将丢失,手动添加的现有项目除外,以便能够在调试游戏时逐步执行这些项目。

请注意,官方说明中没有任何地方要求您添加对生成项目的引用,它是自动完成的,并且手动更改无论如何都会丢失,如前一段所述。

但是您遇到了错误,对吧?

如果没有更多信息,很难判断。

建议:

1.

尝试官方说明,如果它不起作用,请编辑您的问题以添加相关错误,以便人们可以进一步尝试帮助您。

2.

你的DLL是否匹配Unity的框架版本?在某些情况下,否则它会产生有趣的错误。

当我查看 System.IO.Compression.ZipFile 的内容时,它仅适用于 .NET 4.6:

enter image description here

您的播放器设置是否与 .NET 4.6 匹配?

enter image description here

关于c# - 统一: Visual Studio loses DLL reference after Unity compiles code,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53889273/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com