【问题标题】:Failed to run reference rewriter with command error with unity error when adding a DLL to the assets folder将 DLL 添加到资产文件夹时,无法运行引用重写器并出现命令错误和统一错误
【发布时间】:2023-03-28 14:15:01
【问题描述】:

我在将 DAI.dll 添加到资产文件夹时遇到了这个错误。 当我尝试构建时会发生此错误。

UnityException: 无法使用命令运行引用重写器 --target="Temp\StagingArea\DAI.dll" --additionalreferences="Temp\StagingArea","C:\Program Files (x86)\Windows Kits\10\ UnionMetadata\10.0.17134.0\Facade","C:\Program Files (x86)\Windows Kits\10\References\10.0.17134.0\Windows.AI.MachineLearning.Preview.MachineLearningPreviewContract\1.0.0.0","C:\Program文件 (x86)\Windows Kits\10\References\10.0.17134.0\Windows.ApplicationModel.Calls.CallsVoipContract\3.0.0.0","C:\Program Files (x86)\Windows Kits\10\References\10.0.17134.0\ Windows.ApplicationModel.SocialInfo.SocialInfoContract\2.0.0.0","C:\Program Files (x86)\Windows Kits\10\References.....(后面还有很多)......

我正在使用 Visual Studio 2017 版本 15.7.3 和 Unity 版本 2017.2.0b7

我已将 DLL 统一添加到 assets 文件夹中。

这些是我的播放器和构建设置。

【问题讨论】:

    标签: c# .net visual-studio unity3d hololens


    【解决方案1】:

    需要统一更改设置(下图中的设置示例):

    1. 在 Unity 中的项目中找到您的 dll 文件。
    2. 单击一次以突出显示它。
    3. 您将在 Ispector 中看到 dll 选项
    4. 通常对于 HoloLens,您只需选择“WSAPlayer”
    5. 点击应用保存设置。
    6. 重建

    警告

    1. 有时您尝试包含的 dll 引用了其他未包含的内容,这就是它不起作用的原因,但错误会与您得到的不同。
    2. 有时您可能需要导入旧版本的 DLL。例如,我尝试导入 Newtonsoft.Json 11.0.2,但 11.0.2 引用了比统一生成的解决方案更新的核心框架。有办法更新,但不想每次都处理,所以发现能用的最高版本是9.0.1(11.0.2、11.0.1只好跳过, 10.0.3、10.0.2、10.0.1)。
    3. 另外,请记住,您应该包含 netstandard dll。
    4. 我通常手头有 UWP 测试项目来尝试用它来测试我的 dll。如果它在那里工作,那么这是一个很好的第一步,假设它没有依赖项,它可以在将其导入 Unity 后工作。

    最后的结果解决方法

    1. 您可以注释引用您的 dll 的代码
    2. 在没有 dll 的情况下从统一构建项目
    3. 在生成的UWP解决方案中,可以正常添加dll,甚至可以使用nuget安装你想要的dll
    4. Uu 注释您的代码。
    5. 构建您的解决方案,然后部署到您的设备或创建一个包以将其部署到设备或商店。
    6. 这可以很好地解决问题。
    7. 其中一个问题是,如果解决方案被删除,则每次生成解决方案时都需要导入 dll 或安装 nuget。这很烦人,如果你和一个团队一起工作,当他们得到项目并认为它不起作用时,它会变得混乱。这意味着您需要做更多的工作来沟通和部署。
    8. 第二个问题,Unity 正在从 .NET 后端迁移到 IL2CPP(我认为您无法在 CPP 生成的项目中执行此操作)。这意味着这是一个短期解决方法。

    考虑升级到 Unity 2018.2

    1. 使用 .NET 4.X 而不是 .NET 3.4 Equivalent 让我的生活更轻松,因为引用和与引用相关的问题以及使用更现代的 C# 代码。
    2. 如果您安装 Unity Hub,您可以安装它并仍然保留 2017 版本。这将最大限度地降低考虑更新的风险。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-10-15
      • 2021-01-08
      • 2021-12-09
      • 1970-01-01
      相关资源
      最近更新 更多