0

Я пытаюсь удаленно отлаживать приложение C# .NET 4.5 WinForms на Raspberry Pi 3 (запуск Raspbian Jessie) с помощью Visual Studio 2015 на компьютере под управлением Windows.Как я могу удаленно отлаживать приложение C# .NET 4.5 WinForms на Raspberry Pi 3 с помощью Visual Studio 2015?

Как я понимаю, для этого я могу использовать MonoRemoteDebugger. Я установил расширение Visual Studio и запустил серверную программу на Pi, но при попытке отладки приложения программа MonoRemoteDebugger.Server.exe отображает ошибку, которая поступает из программы pdb2mdb.exe. Здесь ошибка:

Fatal error: Microsoft.Cci.Pdb.PdbDebugException: Unknown custom metadata item kind: 6 at Microsoft.Cci.Pdb.PdbFunction.ReadCustomMetadata (Microsoft.Cci.Pdb.BitAccess bits) [0x00000] in :0
at Microsoft.Cci.Pdb.PdbFunction..ctor (System.String module, ManProcSym proc, Microsoft.Cci.Pdb.BitAccess bits) [0x00000] in :0 at Microsoft.Cci.Pdb.PdbFunction.LoadManagedFunctions (System.String module, Microsoft.Cci.Pdb.BitAccess bits, UInt32 limit, Boolean readStrings) [0x00000] in :0 at Microsoft.Cci.Pdb.PdbFile.LoadFuncsFromDbiModule (Microsoft.Cci.Pdb.BitAccess bits, Microsoft.Cci.Pdb.DbiModuleInfo info, Microsoft.Cci.Pdb.IntHashTable names, System.Collections.ArrayList funcList, Boolean readStrings, Microsoft.Cci.Pdb.MsfDirectory dir, System.Collections.Generic.Dictionary`2 nameIndex, Microsoft.Cci.Pdb.PdbReader reader) [0x00000] in :0 at Microsoft.Cci.Pdb.PdbFile.LoadFunctions (System.IO.Stream read, Microsoft.Cci.Pdb.BitAccess bits, Boolean readAllStrings) [0x00000] in :0 at Microsoft.Cci.Pdb.PdbFile.LoadFunctions (System.IO.Stream read, Boolean readAllStrings) [0x00000] in :0 at Pdb2Mdb.Driver.Convert (Mono.Cecil.AssemblyDefinition assembly, System.IO.Stream pdb, Mono.CompilerServices.SymbolWriter.MonoSymbolWriter mdb) [0x00000] in :0

Я попытался запустить команду «pdb2mdb myprogram.exe» на Pi и производит ту же ошибку, так что кажется, что проблема с программой pdb2mdb.exe. С некоторым рытьем я обнаружил, что это было ошибкой в ​​Mono.Cecil, которая was fixed в версии 0.9.6, но похоже, что последняя версия, доступная для Raspian Jessie, составляет 0.9.5.

Я попытался просто заменить pdb2mdb.exe с the one from here, а затем ошибка меняется:

Unhandled Exception: System.TypeLoadException: Could not load type 'Mono.Cecil.AssemblyDefinition' from assembly 'pdb2mdb, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null'. [ERROR] FATAL UNHANDLED EXCEPTION: System.TypeLoadException: Could not load type 'Mono.Cecil.AssemblyDefinition' from assembly 'pdb2mdb, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null'.

Является ли решение, чтобы попытаться получить более новую версию Mono.Cecil на Pi? Если да, то как бы я это сделал, а также убедиться, что pdb2mdb.exe ссылается на более новую версию?

ответ

1

Я решил проблему!

Первый выпуск был с pdb2mdb.exe. Свистящий источник пакета из mono-project.com должен был быть использован для получения последних моно пакетов с помощью этих команд:

sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF 
echo "deb http://download.mono-project.com/repo/debian wheezy main" | sudo tee /etc/apt/sources.list.d/mono-xamarin.list 
sudo apt-get update 
sudo apt-get install mono-complete mono-devel 

После этого MonoRemoteDebugger в Visual Studio показывал следующее сообщение об ошибке:

Unable to start program 'C:\Test1\Test1.exe'.

The located assembly's manifest definition does not match the assembly reference.

Чтобы обойти это, я удалил расширение MonoRemoteDebugger 1.0.5 Visual Studio и установил version 1.0.4, у которого нет этой проблемы.

 Смежные вопросы

  • Нет связанных вопросов^_^