首页 > 解决方案 > System.DLLNotFoundException:fusion.dll

问题描述

我正在使用支持 C# 的 Godot (Mono) 构建应用程序。

在 Visual Studio 中构建解决方案工作正常,没有错误。但是,尝试使用 Godot 构建应用程序会引发异常:

C:\Program Files\Mono\lib\mono\msbuild\15.0\bin\Microsoft.Common.CurrentVersion.targets(2130,5): error MSB4018: The "ResolveAssemblyReference" task failed unexpectedly.
System.DllNotFoundException: fusion.dll
  at (wrapper managed-to-native) Microsoft.Build.Tasks.NativeMethods.CompareAssemblyIdentityWindows(string,bool,string,bool,bool&,Microsoft.Build.Tasks.NativeMethods/AssemblyComparisonResult&)
  at Microsoft.Build.Tasks.NativeMethods.CompareAssemblyIdentity (System.String assemblyIdentity1, System.Boolean fUnified1, System.String assemblyIdentity2, System.Boolean fUnified2, System.Boolean& pfEquivalent, Microsoft.Build.Tasks.NativeMethods+AssemblyComparisonResult& pResult) [0x00007] in <050f973d2a7f41969411264f5f4b2cfa>:0 
  at Microsoft.Build.Tasks.ReferenceTable.ResolveAssemblyNameConflict (Microsoft.Build.Tasks.AssemblyNameReference assemblyReference0, Microsoft.Build.Tasks.AssemblyNameReference assemblyReference1) [0x000c4] in <050f973d2a7f41969411264f5f4b2cfa>:0 
  at Microsoft.Build.Tasks.ReferenceTable.ResolveConflictsBetweenReferences () [0x0003a] in <050f973d2a7f41969411264f5f4b2cfa>:0 
  at Microsoft.Build.Tasks.ReferenceTable.ResolveConflicts (System.Collections.Generic.List`1[Microsoft.Build.Tasks.DependentAssembly]& idealRemappings, System.Collections.Generic.List`1[Microsoft.Build.Tasks.AssemblyNameReference]& conflictingReferences) [0x00006] in <050f973d2a7f41969411264f5f4b2cfa>:0 
  at Microsoft.Build.Tasks.ResolveAssemblyReference.Execute (Microsoft.Build.Shared.FileExists fileExists, Microsoft.Build.Shared.DirectoryExists directoryExists, Microsoft.Build.Tasks.GetDirectories getDirectories, Microsoft.Build.Tasks.GetAssemblyName getAssemblyName, Microsoft.Build.Tasks.GetAssemblyMetadata getAssemblyMetadata, Microsoft.Build.Shared.GetRegistrySubKeyNames getRegistrySubKeyNames, Microsoft.Build.Shared.GetRegistrySubKeyDefaultValue getRegistrySubKeyDefaultValue, Microsoft.Build.Tasks.GetLastWriteTime getLastWriteTime, Microsoft.Build.Tasks.GetAssemblyRuntimeVersion getRuntimeVersion, Microsoft.Build.Shared.OpenBaseKey openBaseKey, Microsoft.Build.Tasks.GetAssemblyPathInGac getAssemblyPathInGac, Microsoft.Build.Tasks.IsWinMDFile isWinMDFile, Microsoft.Build.Tasks.ReadMachineTypeFromPEHeader readMachineTypeFromPEHeader) [0x00578] in <050f973d2a7f41969411264f5f4b2cfa>:0 
  at Microsoft.Build.Tasks.ResolveAssemblyReference.Execute () [0x00000] in <050f973d2a7f41969411264f5f4b2cfa>:0 
  at Microsoft.Build.BackEnd.TaskExecutionHost.Microsoft.Build.BackEnd.ITaskExecutionHost.Execute () [0x00029] in <7dd0c229019940a39d4282a335b99b6f>:0 
  at Microsoft.Build.BackEnd.TaskBuilder.ExecuteInstantiatedTask (Microsoft.Build.BackEnd.ITaskExecutionHost taskExecutionHost, Microsoft.Build.BackEnd.Logging.TaskLoggingContext taskLoggingContext, Microsoft.Build.BackEnd.TaskHost taskHost, Microsoft.Build.BackEnd.ItemBucket bucket, Microsoft.Build.BackEnd.TaskExecutionMode howToExecuteTask) [0x001f6] in <7dd0c229019940a39d4282a335b99b6f>:0  [D:\wrkfldr\godot-project\BoomCraft.csproj]

显然fusion.dll找不到。我在网上找到了 dll 文件,但我不知道放在哪里,所以 Mono 可以看到它。我尝试在 Visual Studio 中引用它,但它引发了另一个错误

Please make sure it is a valid assembly or COM component

这个线程是不相关的,因为它与 Azure API 有很强的链接,我没有在我的项目中使用那个 API。

如何追溯 Mono 需要存储文件的位置?

标签: dllmonogodot

解决方案


推荐阅读