Assembly manifest mismatch package-install doesn't resolve

0

The manifest error is not resovled, i try my best (even link Roslyn source code to my project ). Below is the portion of code, which generate error. The project is WINFORM and in Element Host load the Roslyn Assembly.

Steps to Reproduce the error

  1. remove all packages from the solution Get-Package | Uninstall-Package -RemoveDependencies -Force

  2. set framework to 4.7.2 and Build Platform: x86

  3. remove all System.* referencess
  4. add references System, System.Drawing, System.Windows, System.Windows.Forms, System.Data
  5. install package roslynPad.Editor ( latest: i.e. 1.0.4 ) 5.1. install package roslynPad.Windows ( latest: i.e. 2.4.0 ) 5.2. install package roslynPad.Roslyn ( latest: i.e. 2.4.0 )
  6. reference PresentationCore, PresentationFramework, WindowsBase, WindowsFormsIntegration, UIAutomationProvider
  7. Goto Reference Dlls select all ( in visual studio ), and make Copy Local = true.
  8. ReBuild and found 23 ( conflicts between different versions ) warnings.
  9. Check detail build log ( verbosity is set to detailed )

9** Stackoverflow suggested: recompile assemblies on some posts. remove all packages and add source of roslynPad.

10 do the following, add sources and reset dependencies

**************************************************************************

 =======  ** RoslynPad.Roslyn ** =======
Microsoft.CodeAnalysis.CSharp ( 3.1.0 ) 
Microsoft.CSharp ( 4.5.0 ) 
System.Threading.Thread ( 4.3.0 )
NETStandardLibrary ( 2.0.3 )

 =======  ** RoslynPad.Roslyn.Windows ** =======
 NETFramework 4.7.2

 =======  ** RoslynPad.Editor.Windows ** =======
 NETCoreApp 3.0 NETFramework 4.7.2


 =======  ** emptyRoslynPad ** =======  
Set Refrence to above projects sources.  
     Install following Package  
         Install-Package AvalonEdit -Version 5.0.4
         Install-Package Microsoft.CodeAnalysis -Version 3.1.0

 **************************************************************************

 11 ReBuild     Still the Error ( Mismatch Assembly ) Exists...
System.IO.FileLoadException
  HResult=0x80131040
  Message=Could not load file or assembly 'Microsoft.CodeAnalysis, Version=3.3.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040)
  Source=emptyRoslynPad
  StackTrace:
   at emptyRoslynPad.Form1.InitializeEditor(String sourceCode) in C:\Users\user_\source\repos\emptyRoslynPad\emptyRoslynPad\Form1.cs:line 118
   at emptyRoslynPad.Form1..ctor() in C:\Users\user_\source\repos\emptyRoslynPad\emptyRoslynPad\Form1.cs:line 27
   at emptyRoslynPad.Program.Main(String[] args) in C:\Users\user_\source\repos\emptyRoslynPad\emptyRoslynPad\Program.cs:line 20

Inner Exception 1:
FileLoadException: Could not load file or assembly 'Microsoft.CodeAnalysis, Version=3.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040)

CODE:

 // Form1.cs //
using ICSharpCode.AvalonEdit.Folding;
using ICSharpCode.AvalonEdit.Highlighting;
using RoslynPad.Editor;
using RoslynPad.Roslyn;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.IO;
using System.Linq;
using System.Reflection;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace emptyRoslynPad
{
    public partial class Form1 : Form
    {
        public Form1() // line 118 is the termination }.
        {
            InitializeComponent(); // line 27

            try
            {
                InitializeEditor("");
                MessageBox.Show("Load without error");
            }
            catch (ReflectionTypeLoadException ex)
            {
                StringBuilder sb = new StringBuilder();
                foreach (Exception exSub in ex.LoaderExceptions)
                {
                    sb.AppendLine(exSub.Message);
                    FileNotFoundException exFileNotFound = exSub as FileNotFoundException;
                    if (exFileNotFound != null)
                    {
                        if (!string.IsNullOrEmpty(exFileNotFound.FusionLog))
                        {
                            sb.AppendLine("Fusion Log:");
                            sb.AppendLine(exFileNotFound.FusionLog);
                        }
                    }
                    sb.AppendLine();
                }
                string errorMessage = sb.ToString();
                //Display or log the error based on your application.
                MessageBox.Show(errorMessage);
            }
            finally
            {

            }
        }


        private RoslynCodeEditor _editor;
        private void InitializeEditor(string sourceCode)
        {
            if (string.IsNullOrWhiteSpace(sourceCode))
                sourceCode = string.Empty;
            _editor = new RoslynCodeEditor();
            // bin\x86\Release
            var workingDirectory = Directory.GetCurrentDirectory();
            var roslynHost = new RoslynHost(additionalAssemblies: new[]
            {
        Assembly.Load("RoslynPad.Roslyn.Windows"),
        Assembly.Load("RoslynPad.Editor.Windows")
    });

            _editor.Initialize(roslynHost, new ClassificationHighlightColors(), workingDirectory, sourceCode);
            _editor.FontFamily = new System.Windows.Media.FontFamily("Consolas");
            _editor.SyntaxHighlighting = HighlightingManager.Instance.GetDefinition("C#");
            _editor.FontSize = 12.75f;
            elementHost1.Child = _editor;
            this.Controls.Add(elementHost1);

            // Fold the members/parameters by default so the user doesn't have to see them
            var foldingManager = FoldingManager.Install(_editor.TextArea);
            var foldings = new NewFolding[1] {
    new NewFolding(0, sourceCode.Length) { // end before the newline
        Name = "Members/Parameters",
        DefaultClosed = true
    }
};
            foldingManager.UpdateFoldings(foldings, sourceCode.Length);
        }
    }
}

// Program.cs //

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Drawing;
using System.IO;
using System.Reflection;
using System.Windows.Forms;

namespace emptyRoslynPad
{
    static class Program
    {
        [STAThread]
        static void Main(string[] args)
        {
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            Application.Run(new Form1()); // line 20
        }
    }
}

c#
wpf-controls
roslyn-code-analysis
winforms-interop
roslynpad
asked on Stack Overflow Oct 13, 2019 by Adil Bangush • edited Oct 14, 2019 by Adil Bangush

1 Answer

0

Resolved by changing the following in app.config

 <bindingRedirect oldVersion="0.0.0.0-6.0.0.0" newVersion="6.0.0.0" />

whatever the bindingRedirect is on app.config, remove all. recompile and add the missing packages. tada the solution is working.

answered on Stack Overflow Oct 14, 2019 by Adil Bangush

User contributions licensed under CC BY-SA 3.0