2014-10-17 130 views
0

在最近更新到Windows 8.1後,我的VS 2013不再編譯我的解決方案。PostSharp.Sdk.CodeModel.AssemblyLoadException:找不到程序集'mscorlib,版本= 2.0.5.0

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機器,工作得很好。

UPDATE

當我加入這個代碼後面,編譯錯誤再次出現:

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的,但它是在其他地方使用沒有任何問題。

+0

設置爲項目5.0,4.5或4.0 .NET是什麼版本?嘗試使用該庫爲應用程序設置4.0 .NET版本(如果尚未或者它小於4.x)。也可以嘗試使用不同的構建平臺(x86和AnyCPU)。 – pasty 2014-10-17 22:17:50

+0

^I3av2ouCqwmI。^ 4 + F3cylo(),有什麼可能出錯?請您的AOP供應商與您的混淆器供應商交談。或者相反。 – 2014-10-17 22:28:33

+0

@Darek刪除參考並再次添加它 – 2014-10-17 23:13:51

回答

1

PostSharp 2.1不支持Windows 8.1。最新支持的版本是Windows 7.您應該升級到PostSharp 3.1。另外,我看到您正在瞄準PCL,並且PostSharp 3.1中的PCL支持得到了極大改善。

+0

直到最近它還沒有問題,我也沒有針對PCL。但是,根據互聯網智慧(Google)和您的支持網站,添加此搜索路徑: C:\ Program Files(x86)\ Reference Assemblies \ Microsoft \ Framework \ .NETPortable \ v4.0 \ Profile \ Profile1 \'允許我再次編譯。 – Darek 2014-10-18 14:43:03

2

我已經加入我的.Net 4.5.1項目解決了這個問題(對於不同的組裝)以下的

<DontImportPostSharp>True</DontImportPostSharp> 
<PostSharpTargetFrameworkVersion>4.0</PostSharpTargetFrameworkVersion> 
相關問題