System.IO.FileLoadException: - PullRequest
       76

System.IO.FileLoadException:

1 голос
/ 30 мая 2020

Это сегмент кода, который я использовал, обратите внимание, что **** - это замена моего имени

using System;
using ArduinoUploader;
using ArduinoUploader.Hardware;

namespace SoftwareAssignment
{
    class Program
    {
        static void Main(string[] args)
        {
            var uploader = new ArduinoSketchUploader(
                new ArduinoSketchUploaderOptions()
                {
                     FileName = @"C:\Users\****\OneDrive\Desktop\Blink\Blink.hex",
                     PortName = "COM5",
                     ArduinoModel = ArduinoModel.Micro
                });

            uploader.UploadSketch();
        }
    }

Я получил исключение, когда использовал ArduinoUploader для загрузки файла .hex на Arduino в то время как в Visual Studio 2019.

System.IO.FileLoadException: 'Could not load file or assembly 'IntelHexFormatReader, Version=2.2.3.0, Culture=neutral, PublicKeyToken=null'. The located assembly's manifest definition does not match the assembly reference. (0x80131040)'

Это подробности

System.IO.FileLoadException
  HResult=0x80131040
  Message=Could not load file or assembly 'IntelHexFormatReader, Version=2.2.3.0, Culture=neutral, PublicKeyToken=null'. The located assembly's manifest definition does not match the assembly reference. (0x80131040)
  Source=ArduinoUploader
  StackTrace:
   at ArduinoUploader.ArduinoSketchUploader.UploadSketch(IEnumerable`1 hexFileContents)
   at ArduinoUploader.ArduinoSketchUploader.UploadSketch()
   at SoftwareAssignment.Program.Main(String[] args) in C:\Users\****\source\repos\SoftwareAssignment\SoftwareAssignment\Program.cs:line 20

Я не знаю, как мне go решать эту проблему, или если это результат ArduinoUploader пакет, использующий более старую версию фреймворка. NET, или если есть способ исправить это вообще. Код записан в C#.

Ответы [ 2 ]

0 голосов
/ 23 июня 2020

Я слышу тебя ОП. Вы должны понимать, что вам нужно установить другой пакет NuGet, то есть IntelHexReader. Его написал тот же парень, TwinEarthSoftware. Найдите его в Visual Studio. Вам не нужно навязывать это при определении используемых каталогов. Это не имеет ничего общего с фреймворком. NET, он просто предполагает, что ему требуется 2.2.3.0 IntelHexFileReader.

0 голосов
/ 30 мая 2020

Перепринтовать сборки можно разными способами, самый простой лично для меня в конфиге. Ниже от

https://docs.microsoft.com/en-us/dotnet/framework/configure-apps/redirect-assembly-versions

<dependentAssembly>
  <assemblyIdentity name="someAssembly"
    publicKeyToken="32ab4ba45e0a69a1"
    culture="en-us" />
  <bindingRedirect oldVersion="7.0.0.0" 
newVersion="8.0.0.0" />
</dependentAssembly>

Обратите внимание, однако, что нет никаких гарантий, что ваша сборка будет работать так, как вы ожидаете, будь она старше или новее. Я предлагаю вам попробовать найти правильный. Тем не менее, если вы не можете, то это ваш лучший снимок.

...