**这是Visual Studio 2013中的一个问题。
我得到的错误是巨大的,而且大多无用,但其关键是
Error 130 Fody: Could not load 'ModuleWeaver' from 'PropertyChanged.Fody, Version=1.50.3.0, Culture=neutral, PublicKeyToken=null' due to ReflectionTypeLoadException.
It is possible you need to update the package.
exception.LoaderExceptions:
System.IO.FileLoadException: Could not load file or assembly 'Mono.Cecil, Version=0.9.6.0, Culture=neutral, PublicKeyToken=0738eb9f132ed756' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040)
File name: 'Mono.Cecil, Version=0.9.6.0, Culture=neutral, PublicKeyToken=0738eb9f132ed756'
同样,由于没有任何变化,我一直不知道它的问题是什么。它正在寻找的DLL位于它一直坐的同一个地方。
编辑:显然在这一点上它已经厌倦了吐出那个错误所以它制造了一个新的
Error 42 The "Fody.WeavingTask" task failed unexpectedly.
System.IO.FileNotFoundException: Could not load file or assembly 'Mono.Cecil, Version=0.9.5.0, Culture=neutral, PublicKeyToken=0738eb9f132ed756' or one of its dependencies. The system cannot find the file specified.
File name: 'Mono.Cecil, Version=0.9.5.0, Culture=neutral, PublicKeyToken=0738eb9f132ed756'
at ExceptionExtensions.LogException(ILogger logger, Exception exception)
at Processor.Execute() in c:\TeamCity\buildAgent\work\7495521761d392b9\Fody\Processor.cs:line 56
at Fody.WeavingTask.Execute() in c:\TeamCity\buildAgent\work\7495521761d392b9\Fody\WeavingTask.cs:line 44
at Microsoft.Build.BackEnd.TaskExecutionHost.Microsoft.Build.BackEnd.ITaskExecutionHost.Execute()
at Microsoft.Build.BackEnd.TaskBuilder.<ExecuteInstantiatedTask>d__20.MoveNext()
编辑2:
此外,该错误据称发生在&#34; Fody.targets&#34;在第50行,
<Fody.WeavingTask
AssemblyPath="@(IntermediateAssembly)"
IntermediateDir="$(IntermediateDir)"
KeyFilePath="$(FodyKeyFilePath)"
ProjectDirectory="$(ProjectDir)"
SolutionDir="$(FodySolutionDir)"
References="@(ReferencePath)"
SignAssembly="$(FodySignAssembly)"
ReferenceCopyLocalPaths="@(ReferenceCopyLocalPaths)"
DefineConstants="$(DefineConstants)"
/>
编辑3:
我在构建过程中删除了与Fody和Nuget相关联的所有文件。之后的错误与第二个错误相同:
"Error 42 The "Fody.WeavingTask" task failed unexpectedly."
编辑4:
我真的希望Fody的开发人员看到这一点,因为我们会在这个问题得到解决之前一直处于绝对停滞状态。我们无法恢复&#34;回到工作时,因为当前的配置是工作时的。
答案 0 :(得分:14)
看起来您的错误实际上是在找到一个名为ModuleWeaver
的类。此类是Fody
包的一部分。
只需使用以下代码更新nuget
包管理器中的包
update-package Fody -reinstall
可能会修复它。
失败:确保您的app.config文件没有错误的重定向。 删除此部分,删除所有重定向。 Visual Studio通常会添加必要的内容。
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="Microsoft.Owin" publicKeyToken="31bf3856ad364e35" />
<bindingRedirect oldVersion="0.0.0.0-3.0.1.0" newVersion="3.0.1.0" />
</dependentAssembly>
再次尝试,如果失败,请尝试查找哪个从属程序集失败。您可以编写一行命令行应用程序,或使用LinqPad。
您可以尝试LinqPad,如果您还没有使用它,请粘贴它。
Assembly.LoadFile("path to Fody");
Assembly.LoadFile("path to Mono.Cecil");
您应该获得详细说明缺失库的异常。
答案 1 :(得分:2)
在尝试了我可以在互联网上找到的所有解决方案之后,以下内容对我有用:
Debug
和Release
文件夹。对我而言,它们位于MyPCLProjectName\bin\
和iOS\bin\iPhoneSimulator\
。.csproj
文件并删除所有<Import>
标记,除之外的<Import Project="$(MSBuildExtensionsPath32)\...
Solution Explorer > right-click solution > Restore NuGet Packages
。 答案 2 :(得分:1)
要调试此类问题,您可以使用SysInternals Process Monitor。
一般方法是:
寻找丢失的DLL。这部分有点棘手,因为
所以你需要找到一个从不找到的DLL。并且您不希望在以后的尝试中找到但未找到的DLL。
嗯,这个过程可能非常耗时,所以我开发了工具Process Monitor Log Analyzer。有了它,你应该能够在更短的时间内找到罪魁祸首。
免责声明:我是该免费工具的作者,如果从文本中看不清楚的话。
答案 3 :(得分:1)
有些人得到类似的错误可能会从这些信息中受益,该信息指出具有不同Fody版本的项目不能使用相同的NuGet包文件夹(如果我理解正确的话): Installing multiple versions of PropertyChanged breaks compilation
在所有项目中重新安装Fody软件包也可以解决问题,但将所有版本更改为相同版本可能会更容易。
答案 4 :(得分:1)
如果您正在使用git,请从命令行运行:
git clean -xdf
答案 5 :(得分:0)
我有一个项目遇到了这个问题:我的机器安装了 Visual Studio 2017
,但我最近还为一个不相关的项目安装了 Build Tools for Visual Studio 2019
。由于卸载 2019 版的工具为我解决了这个问题,因此似乎对使用哪些构建工具感到困惑。