Skip to content

Commit 6717275

Browse files
radekdoulikgrendello
authored andcommitted
Fix build with newer cecil (from overriden source path) (dotnet#428)
When trying to use newer mono in XA, we run into issues where cecil (from mono repo) doesn't build anymore. Context: dotnet/android#3159 Turned out we need to restore nuget packages for cecil before the build to avoid errors like: Mono.Cecil/TypeSystem.cs(83,29): error CS0518: Predefined type 'System.Object' is not defined or imported [/Users/rodo/git/xa2/external/mono/external/cecil/Mono.Cecil.csproj] Mono.Cecil/TypeSystem.cs(83,4): error CS0518: Predefined type 'System.Void' is not defined or imported [/Users/rodo/git/xa2/external/mono/external/cecil/Mono.Cecil.csproj] Mono.Cecil/TypeSystem.cs(81,4): error CS0518: Predefined type 'System.Object' is not defined or imported [/Users/rodo/git/xa2/external/mono/external/cecil/Mono.Cecil.csproj] 8 Warning(s) 7700 Error(s) Also grant access from `Mono.Cecil.[Mdb|Pdb]` assemblies to `Mono.Cecil`. Looks like the access restrictions got tighter and so CSC was complaining about the wrong key. It happens because the original cecil key differ from our `product.snk` key, which we add in our overrides and so access for `Mono.Cecil.[Mdb|Pdb]` granted by original cecil `AssemblyInfo.cs` file is not valid anymore. The error we were getting from CSC: CSC : error CS0281: Friend access was granted by 'Mono.Cecil, Version=0.11.0.0, Culture=neutral, PublicKeyToken=84e04ff9cfb79065', but the public key of the output assembly does not match that specified by the attribute in the granting assembly. [/Users/rodo/git/xa2/external/mono/external/cecil/symbols/mdb/Mono.Cecil.Mdb.csproj]
1 parent 7ef0be5 commit 6717275

File tree

2 files changed

+3
-1
lines changed

2 files changed

+3
-1
lines changed

external/Mono.Cecil.AssemblyInfo.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,3 +2,5 @@
22

33
[assembly: InternalsVisibleTo ("Xamarin.Android.Cecil.Pdb, PublicKey=0024000004800000940000000602000000240000525341310004000011000000438ac2a5acfbf16cbd2b2b47a62762f273df9cb2795ceccdf77d10bf508e69e7a362ea7a45455bbf3ac955e1f2e2814f144e5d817efc4c6502cc012df310783348304e3ae38573c6d658c234025821fda87a0be8a0d504df564e2c93b2b878925f42503e9d54dfef9f9586d9e6f38a305769587b1de01f6c0410328b2c9733db")]
44
[assembly: InternalsVisibleTo ("Xamarin.Android.Cecil.Mdb, PublicKey=0024000004800000940000000602000000240000525341310004000011000000438ac2a5acfbf16cbd2b2b47a62762f273df9cb2795ceccdf77d10bf508e69e7a362ea7a45455bbf3ac955e1f2e2814f144e5d817efc4c6502cc012df310783348304e3ae38573c6d658c234025821fda87a0be8a0d504df564e2c93b2b878925f42503e9d54dfef9f9586d9e6f38a305769587b1de01f6c0410328b2c9733db")]
5+
[assembly: InternalsVisibleTo ("Mono.Cecil.Pdb, PublicKey=0024000004800000940000000602000000240000525341310004000011000000438ac2a5acfbf16cbd2b2b47a62762f273df9cb2795ceccdf77d10bf508e69e7a362ea7a45455bbf3ac955e1f2e2814f144e5d817efc4c6502cc012df310783348304e3ae38573c6d658c234025821fda87a0be8a0d504df564e2c93b2b878925f42503e9d54dfef9f9586d9e6f38a305769587b1de01f6c0410328b2c9733db")]
6+
[assembly: InternalsVisibleTo ("Mono.Cecil.Mdb, PublicKey=0024000004800000940000000602000000240000525341310004000011000000438ac2a5acfbf16cbd2b2b47a62762f273df9cb2795ceccdf77d10bf508e69e7a362ea7a45455bbf3ac955e1f2e2814f144e5d817efc4c6502cc012df310783348304e3ae38573c6d658c234025821fda87a0be8a0d504df564e2c93b2b878925f42503e9d54dfef9f9586d9e6f38a305769587b1de01f6c0410328b2c9733db")]

src/Xamarin.Android.Cecil/Xamarin.Android.Cecil.targets

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
Outputs="$(CecilAssemblies)">
1818
<MSBuild
1919
Projects="@(_CecilProject)"
20-
Targets="Clean;Build"
20+
Targets="Clean;Restore;Build"
2121
StopOnFirstFailure="True"
2222
Properties="Configuration=net_4_0_Debug;OutputPath=$(CecilOutputPath);BuildingSolutionFile=false" />
2323
<Touch Files="$(CecilAssemblies)" />

0 commit comments

Comments
 (0)