c# - PostSharp.Sdk.CodeModel.AssemblyLoadException : Cannot find assembly 'mscorlib, 版本=2.0.5.0

标签 c# postsharp

最近更新到 Windows 8.1 后,我的 VS 2013 不再编译我的解决方案。

Error   1   Unhandled exception (2.1.7.35, 32 bit, CLR 4.0, Release): PostSharp.Sdk.CodeModel.AssemblyLoadException: Cannot find assembly 'mscorlib, version=2.0.5.0, culture=neutral, publickeytoken=7cec85d7bea7798e'. [Public key mismatch]
============ PostSharp Assembly Loading Log ===================
LOG: Finding the assembly with binding identity 'mscorlib, version=2.0.5.0, culture=neutral, publickeytoken=7cec85d7bea7798e'.
LOG: Probing location 'C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.0\mscorlib.dll' because this file was explicitly added to the search path.
LOG: File 'C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.0\mscorlib.dll' has identity 'mscorlib, version=4.0.0.0, culture=neutral, publickeytoken=b77a5c561934e089, processorarchitecture=msil'.
LOG: File 'C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.0\mscorlib.dll' does not match the reference.
...
LOG: The assembly 'mscorlib_7' was not found.
===============================================================
   at PostSharp.Sdk.CodeModel.Domain.GetAssembly(IAssemblyName assemblyName, BindingOptions bindingOptions)
   at PostSharp.Sdk.CodeModel.AssemblyRefDeclaration.GetAssemblyEnvelope()
   at PostSharp.Sdk.CodeModel.TypeRefDeclaration.GetTypeDefinition(BindingOptions bindingOptions)
   at PostSharp.Sdk.CodeModel.TypeRefDeclaration.GetTypeDefinition()
   at ^I3av2ouCqwmI.^4+F3cylo(INamedType _0, INamedType _1, BindingOptions _2)
   at PostSharp.Sdk.CodeModel.TypeRefDeclaration.^A9yFoe2uB3TC(ITypeSignature _0, BindingOptions _1)
   at ^I3av2ouCqwmI.^4+F3cylo(IMethodSignature _0, IMethodSignature _1, BindingOptions _2)
   at PostSharp.Sdk.CodeModel.Binding.MethodSignatureComparer.Equals(IMethodSignature x, IMethodSignature y)
   at System.Collections.Generic.Dictionary`2.FindEntry(TKey key)
   at System.Collections.Generic.Dictionary`2.TryGetValue(TKey key, TValue& value)
   at ^/vWxD3eYDOIx.^wdkNIZCy[??0](^/fRRnkiTvxqu _0, ??0 _1, ^EyL1LQX01Ck8 _2, ^0RC0kpHqS6Uy _3, Dictionary`2 _4, Int32 _5, Int32 _6)
   at PostSharp.Sdk.Binary.ModuleWriter.SetMemberSignatureIndex(MemberRefDeclaration _0, ^EyL1LQX01Ck8 _1, ^0RC0kpHqS6Uy _2)
   at PostSharp.Sdk.Binary.ModuleWriter.WriteMemberRef(MemberRefDeclaration _0, MetadataToken _1)
   at PostSharp.Sdk.Binary.ModuleWriter.GetMappedDeclarationToken(MetadataDeclaration _0)
   at PostSharp.Sdk.Binary.ModuleWriter.SetMappedMetadataToken(MetadataDeclaration _0, UInt32* _1)
   at ^R00FfLNj7vE0.^rk33N/hO(OpCodeNumber _0, MetadataDeclaration _1)
   at ^R00FfLNj7vE0.EmitInstructionMethod(OpCodeNumber _0, IMethod _1)
   at PostSharp.Sdk.CodeModel.Instruction.Write(BaseInstructionWriter writer, InstructionPrefixes allowedPrefixes)
   at ^zpGNRK5nUM9z.^x98p/iJs13L+(InstructionReader _0)
   at PostSharp.Sdk.CodeModel.MethodBodyDeclaration.^uPrQJ6gs(InstructionBlock _0, IMethodBodyVisitor[] _1, MethodBodyVisitLevel _2, InstructionAction _3, InstructionReader _4, InstructionBlockExceptionHandlingKind _5)
   at PostSharp.Sdk.CodeModel.MethodBodyDeclaration.^uPrQJ6gs(InstructionBlock _0, IMethodBodyVisitor[] _1, MethodBodyVisitLevel _2, InstructionAction _3, InstructionReader _4, InstructionBlockExceptionHandlingKind _5)
   at PostSharp.Sdk.CodeModel.MethodBodyDeclaration.^uPrQJ6gs(InstructionBlock _0, IMethodBodyVisitor[] _1, MethodBodyVisitLevel _2, InstructionAction _3, InstructionReader _4, InstructionBlockExceptionHandlingKind _5)
   at PostSharp.Sdk.CodeModel.MethodBodyDeclaration.^uPrQJ6gs(InstructionBlock _0, IMethodBodyVisitor[] _1, MethodBodyVisitLevel _2, InstructionAction _3, InstructionReader _4, InstructionBlockExceptionHandlingKind _5)
   at ^zpGNRK5nUM9z.^e2BtLyuT(^Kh85h0nXrulm& _0, Int32& _1)
   at ^zpGNRK5nUM9z.^SkiT(^ceSOybcTEumb _0)
   at PostSharp.Sdk.Binary.ModuleWriter.WriteMethodBodies(^ceSOybcTEumb _0, UInt32 _1)
   at ^Up6wxUIUnN6a.^VfvrABjR()
   at ^Up6wxUIUnN6a.^SkiT()
   at ^cyC/TYSlPGB/.^wvPm(^RtksFin57NJ8 _0, ^8gP93Xsl\+Imn _1)
   at PostSharp.Sdk.Extensibility.Tasks.CompileTask.Execute()
   at PostSharp.Sdk.Extensibility.Project.ExecutePhase(String phase)
   at PostSharp.Sdk.Extensibility.Project.Execute()
   at PostSharp.Hosting.PostSharpObject.ExecuteProjects()
   at PostSharp.Hosting.PostSharpObject.InvokeProject(ProjectInvocation projectInvocation)  E:\Development.TFS\CopyTran\MAIN\CopyTran\CopyTran.CoreDatabase\POSTSHARP   CopyTran.CoreDatabase

有什么想法可能导致这种行为吗?具有相同 VS2013 和代码的 Windows 7 机器可以正常工作。

更新

当我重新添加此代码时,编译错误再次出现:

TypeMap[] allTypeMaps = Mapper.GetAllTypeMaps();
foreach (TypeMap typeMap in allTypeMaps)
{
    foreach (PropertyMap propertyMap in typeMap.GetPropertyMaps())
    {
        if ((propertyMap.SourceMember as PropertyInfo).PropertyType.Name !=
            propertyMap.DestinationPropertyType.Name)
        {
            _log.WarnFormat("Types not matching {0}.{1} <> {2}.{3}", typeMap.SourceType.Name,
            propertyMap.SourceMember.Name, typeMap.DestinationType.Name,
            propertyMap.DestinationProperty.Name);
        }
    }
}

_log是来自Log4Net的ILog,但用在其他地方没有任何问题。

最佳答案

我通过将以下内容添加到

在我的 .Net 4.5.1 项目上解决了这个问题(对于不同的程序集)
<DontImportPostSharp>True</DontImportPostSharp>
<PostSharpTargetFrameworkVersion>4.0</PostSharpTargetFrameworkVersion>

关于c# - PostSharp.Sdk.CodeModel.AssemblyLoadException : Cannot find assembly 'mscorlib, 版本=2.0.5.0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26433684/

相关文章:

c# - 我一定是遗漏了一些东西 - 毫无意义的分号错误

.net - 无法启动 vsixinstaller.exe,VSIX 安装程序进程失败,退出代码 1006

c# - 后锐利。如何引入可序列化属性

c#-4.0 - Postsharp - 将 OnMethodBoundaryAspect 添加到抽象方法 - 方面未触发

c# - 如何使用控件数组在 C# 中获取给定对象的数组索引?

c# - 面向 C/C++ 用户的 C# 简介

c# - ResponseRewrite 后 session 为空

c# - 验证 WCF 和 WebService 方法参数值的最佳方式

json.net - 发布版本中 PostSharp 中的 AssemblyLoadException

c# - 在 Web 应用程序中访问业务逻辑服务是否有最佳实践?