(在Unity 5.6 beta版上解决)从5.3.x升级后构建的Unity 5.5x外部dll问题

(在Unity 5.6 beta版上解决)从5.3.x升级后构建的Unity 5.5x外部dll问题,dll,monodevelop,unity5,text-to-speech,sapi,Dll,Monodevelop,Unity5,Text To Speech,Sapi,大家好,谢谢你们抽出时间。 我在Unity 5.5.0f3上构建(win x86)一个特定项目时面临一个问题 去年,我使用Unity5.2.x为一个与视障人士相关的项目编写了一些代码。当时我发现了一个非常有趣的由达古二世所做的整合 他使用外部DLL Interop.SpeechLib.DLL创建了一个可以与windows SAPI 5.x交互的unity项目 所以我采纳了他的想法,制作了关于如何与windows SAPI交互的更好的示例代码,并分享了代码和构建(由Unity 5.2.x制作) 现

大家好,谢谢你们抽出时间。 我在Unity 5.5.0f3上构建(win x86)一个特定项目时面临一个问题

去年,我使用Unity5.2.x为一个与视障人士相关的项目编写了一些代码。当时我发现了一个非常有趣的由达古二世所做的整合 他使用外部DLL Interop.SpeechLib.DLL创建了一个可以与windows SAPI 5.x交互的unity项目

所以我采纳了他的想法,制作了关于如何与windows SAPI交互的更好的示例代码,并分享了代码和构建(由Unity 5.2.x制作)

现在,Unity 5.4.0发布后,代码保持运行,因此试图构建Unity的dll突然停止,出现以下错误:

*ReflectionTypeLoadException: The classes in the module cannot be loaded
System.Reflection.Assembly.GetTypes () (at /Users/builduser/buildslave/mono/build/mcs/class/corlib/System.Reflection/Assembly.cs:371)
UnityEditor.AttributeHelper+c__Iterator31[System.Collections.Generic.IEnumerable1[UnityEditorInternal.PluginDesc]].MoveNext () (at C:/buildslave/unity/build/Editor/Mono/AttributeHelper.cs:277)
UnityEditor.PluginImporter+c__Iterator0.MoveNext () (at C:/buildslave/unity/build/Editor/Mono/PluginImporter.cs:41)
DesktopStandalonePostProcessor.CopyNativePlugins () (at C:/buildslave/unity/build/Editor/Mono/BuildPipeline/DesktopStandalonePostProcessor.cs:116)
DesktopStandalonePostProcessor.SetupStagingArea () (at C:/buildslave/unity/build/Editor/Mono/BuildPipeline/DesktopStandalonePostProcessor.cs:145)
DesktopStandalonePostProcessor.PostProcess () (at C:/buildslave/unity/build/Editor/Mono/BuildPipeline/DesktopStandalonePostProcessor.cs:23)
UnityEditor.WindowsStandalone.WindowsDesktopStandalonePostProcessor.PostProcess (BuildPostProcessArgs args) (at C:/buildslave/unity/build/PlatformDependent/WinPlayer/Extensions/Managed/WindowsDesktopStandalonePostProcessor.cs:118)
UnityEditor.PostprocessBuildPlayer.Postprocess (BuildTarget target, System.String installPath, System.String companyName, System.String productName, Int32 width, Int32 height, System.String downloadWebplayerUrl, System.String manualDownloadWebplayerUrl, BuildOptions options, UnityEditor.RuntimeClassRegistry usedClassRegistry, UnityEditor.BuildReporting.BuildReport report) (at C:/buildslave/unity/build/Editor/Mono/BuildPipeline/PostprocessBuildPlayer.cs:176)
UnityEditor.HostView:OnGUI()*
这个问题与sapi dll有关,我一直等到unity 5.5发布,但它仍然不起作用,我还没有足够的经验来解决这个问题

谢谢你的建议

完整日志

Packing sprites:
SpritePacker failed to get types from Interop.SpeechLib, Version=5.4.0.0, Culture=neutral, PublicKeyToken=null. Error: The classes in the module cannot be loaded.
UnityEngine.DebugLogHandler:Internal_Log(LogType, String, Object)
UnityEngine.DebugLogHandler:LogFormat(LogType, Object, String, Object[])
UnityEngine.Logger:Log(LogType, Object)
UnityEngine.Debug:Log(Object)
UnityEditor.Sprites.Packer:RegenerateList() (at C:\buildslave\unity\build\Editor\Mono\Sprites\SpritePacker.cs:74)
UnityEditor.Sprites.Packer:GetSelectedPolicyId() (at C:\buildslave\unity\build\Editor\Mono\Sprites\SpritePacker.cs:102)
UnityEditor.BuildPipeline:BuildPlayerInternalNoCheck(String[], String, String, BuildTarget, BuildOptions, Boolean)
UnityEditor.BuildPlayerWindow:BuildPlayerWithDefaultSettings(Boolean, BuildOptions, Boolean) (at C:\buildslave\unity\build\Editor\Mono\BuildPlayerWindow.cs:464)
UnityEditor.BuildPlayerWindow:BuildPlayerWithDefaultSettings(Boolean, BuildOptions) (at C:\buildslave\unity\build\Editor\Mono\BuildPlayerWindow.cs:321)
UnityEditor.BuildPlayerWindow:GUIBuildButtons(IBuildWindowExtension, Boolean, Boolean, Boolean, BuildPlatform) (at C:\buildslave\unity\build\Editor\Mono\BuildPlayerWindow.cs:1364)
UnityEditor.BuildPlayerWindow:ShowBuildTargetSettings() (at C:\buildslave\unity\build\Editor\Mono\BuildPlayerWindow.cs:1291)
UnityEditor.BuildPlayerWindow:OnGUI() (at C:\buildslave\unity\build\Editor\Mono\BuildPlayerWindow.cs:887)
System.Reflection.MonoMethod:InternalInvoke(Object, Object[], Exception&)
System.Reflection.MonoMethod:Invoke(Object, BindingFlags, Binder, Object[], CultureInfo) (at /Users/builduser/buildslave/mono/build/mcs/class/corlib/System.Reflection/MonoMethod.cs:222)
System.Reflection.MethodBase:Invoke(Object, Object[]) (at /Users/builduser/buildslave/mono/build/mcs/class/corlib/System.Reflection/MethodBase.cs:115)
UnityEditor.HostView:Invoke(String, Object) (at C:\buildslave\unity\build\Editor\Mono\HostView.cs:249)
UnityEditor.HostView:Invoke(String) (at C:\buildslave\unity\build\Editor\Mono\HostView.cs:242)
UnityEditor.HostView:OnGUI() (at C:\buildslave\unity\build\Editor\Mono\HostView.cs:76)

(Filename: /Users/builduser/buildslave/mono/build/mcs/class/corlib/System.Reflection/MonoMethod.cs Line: 222)

- Grouping sprites using the selected SpritePackerPolicy.
- Packing 0 atlases.
- Packing completed.
Opening scene 'Temp/__Backupscenes/0.backup'
Load scene 'Temp/__Backupscenes/0.backup' time: 0.038916 ms 
Unloading 7 Unused Serialized files (Serialized files now loaded: 0)
System memory in use before: 38.3 MB.
System memory in use after: 38.4 MB.

事实上,我在Win8虚拟机上运行的Unity 5.6.0b5测试版刚刚成功地构建了脚本,因此我很有信心,也可以在Unity 5.6最终版本中构建此脚本。我也一直在研究这个问题。它声明dll中的所有引用都需要存在。dll Interop.speech引用了mscorlib v2.0.0.0,但unity提供了mscorlib v4.0.0.0。我想知道我们是否供应v2,它是否会起作用。但现在没有时间测试它。很抱歉