Laden...

Win CE Gerät MissingMethodException

Erstellt von AxelA vor 8 Jahren Letzter Beitrag vor 8 Jahren 2.075 Views
AxelA Themenstarter:in
71 Beiträge seit 2008
vor 8 Jahren
Win CE Gerät MissingMethodException

Hallo,
Ich weiß das mein Problem schon sehr spezifisch ist und ich auch ehrlichgesagt wenig Hoffnung habe das mir hier weitergeholfen werden kann. Aber da ich seit Tagen das Internet durchsuche und es noch zu keiner Lösung gekommen ist poste ich in meiner Verzweiflung das Problem hier. Vielleicht liegt es ja wieder mal an meiner eigenen Unerfahrenheit und es liegt nur an einer Kleinigkeit oder es hat jemand so etwas schon mal gemacht.
Die Aufgabe ist es ein Programm für einen Mobilen Scanner (Symbol MT2070) mit Win CE zu entwickeln. Entwicklungsumgebung ist VS 2008.

Dazu wurde das Hersteller SDK installiert. Laut Beschreibung (komplette Beschreibung siehe unten) muss ein neues C# Win CE Projekt erstellt werden. Danach die gerätespezifischen Verweise hinzugefügt. Die Form1 wird dann gelöscht und es wird eine neue aus der Geräteassembly Vererbtee Form hinzugefügt. Zuletzt die Program.cs anpassen (SystemMonitor) und alles neu erstellen.
Bis dahin funktioniert alles Fehlerfrei.
Möchte ich aber die Aplikation über das Win MobileCenter starten erhalte ich genau in Program.cs an der Stelle:

Application.Run(new MainForm());

den Fehler:> Fehlermeldung:

„Wenn eine Methode in einer Klassenbibliothek entfernt oder umbenannt wurde, kompilieren Sie alle auf diese Methode verweisenden Assemblys erneut.“

Und hier weiß ich seit Tagen nicht mehr weiter. Hat jemand ne Idee?

Originale Herstellerbeschreibung (funktioniert auch alles):

Creating a new MT2000 application is very similar to creating a new “normal” application. There are only three differences:you must add a reference to the Symbol.MT2000.UserInterface assembly (and possibly the Utils assembly), your forms must be inherited from one of the basic MT2000 forms (BasicForm or ListForm), rather than from the standard Form class, you must start and stop the system monitor in the program’s mainline.
Here are the basic steps involved (all performed from within Visual Studio):

create a new project
select the File - New - Project.. menu item
select Visual C# - Smart Device - Windows CE 5.0 under Project Types
select Device Application under Templates
enter the Name and Location of your project
press the OK button
add a reference to the Symbol.MT2000.UserInterface assembly
right-click on the project and select Add Reference…
select Symbol.MT2000.UserInterface on the .NET tab (optionally also select Symbol.MT2000.Utils)
delete Form1
right-click on the project and select Add >> Windows Form…
select Inherited Form under Templates
set the Name to MainForm.cs
press the Add button
select BaseForm or ListForm in the Inheritance Picker window, depending on what type of application you’re writing
press the OK button
start/stop the SystemMonitor and launch MainForm
open the Program.cs file
add the following line at the top of the file:
using Symbol.MT2000.Utils;
replace the following line:
Application.Run(new Form1());
with these three lines:
SystemMonitor.Start();
Application.Run(new MainForm());
SystemMonitor.Stop();
compile your application

Computer sind das fehlende Bindeglied zwischen dem Boden der Tatsachen und dem Himmel der Perfektion. Daß wir letztem schon viel näher sind, erkennt man am vielen Blau auf den Bildschirmen…

2.207 Beiträge seit 2011
vor 8 Jahren

Ich hab keine Ahnung, ob das hilft. Aber hast du dir mal

www.mycsharp.de/wbb2/thread.php?postid=184924

angeschaut? Hilft das vielleicht?

2.298 Beiträge seit 2010
vor 8 Jahren

Hallo,

kannst du das Programm debuggen? Dann wäre mein erster Versuch nämlich mal mit dem Debugger in den Konstruktor der MainForm zu schauen, wo es genau knallt. - Irgendetwas muss ja im Konstruktor passieren.

// EDIT:
Gibts die Dokumentation irgendwo Online?

Wissen ist nicht alles. Man muss es auch anwenden können.

PS Fritz!Box API - TR-064 Schnittstelle | PS EventLogManager |

AxelA Themenstarter:in
71 Beiträge seit 2008
vor 8 Jahren

Ja, es lässt sich debuggen, der Fehler tritt auf bei:
this.AutoscaleMode.......

      #region Vom Windows Form-Designer generierter Code

        /// <summary>
        /// Erforderliche Methode für die Designerunterstützung.
        /// Der Inhalt der Methode darf nicht mit dem Code-Editor geändert werden.
        /// </summary>
        private void InitializeComponent()
        {
            this.components = new System.ComponentModel.Container();
            this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Dpi;
        }

        #endregion

Den Artikel 184924 hatte ich auch schon gelesen... weiß nur nicht wie mir das helfen kann.
leider ist die Gerätedokumentation nicht online.

Computer sind das fehlende Bindeglied zwischen dem Boden der Tatsachen und dem Himmel der Perfektion. Daß wir letztem schon viel näher sind, erkennt man am vielen Blau auf den Bildschirmen…

3.170 Beiträge seit 2006
vor 8 Jahren

Hallo,

gibt's zu der Exception auch 'nen Stacktrace?

und:

select Visual C# - Smart Device - Windows CE 5.0 under Project Types

Stimmt bei Dir die Version 5.0?

Gruß, MarsStein

Non quia difficilia sunt, non audemus, sed quia non audemus, difficilia sunt! - Seneca

5.658 Beiträge seit 2006
vor 8 Jahren

Hi AxelA,

ich habe zwar auch keine Lösung, aber vielleicht helfen die Fragen, das Problem etwas weiter einzugrenzen:

  • Kannst du ein normales WinForms- (oder anders?) Projekt auf dem Gerät zu Laufen bringen?
  • Sind die notwendigen .NET-Framework-Versionen auf dem Gerät installiert?
  • Referenziert dein Projekt die gleiche Framework-Version wie der SDK?
  • Was sagt der Support des Geräteherstellers zu dem Problem?

Christian

Weeks of programming can save you hours of planning

T
708 Beiträge seit 2008
vor 8 Jahren

Hallo AxelA,

ich würde auch erstmal so vorgehen wie MrSparkle es beschreibt.
Eine neue Anwendung für Win CE erstellen und auf dem Gerät bereitstellen. Ohne irgendwelche Symbol Libraries o.ä.

Die benötigst Du ohnehin eigentlich nur, wenn Du selbst manuell den Barcode Scanner ansprechen möchtest. Dazu reicht es aber einfach die "Symbol.Barcode.Design.dll" zu referenzieren und zu verwenden.

Keine Ahnung was alles passiert, wenn Du von der Symbol-Form ableitest und was diese alles versucht zu manipulieren. In meinen Anwendungen habe ich auch nie Probleme mit dem AutoScaleMode gehabt.

2.298 Beiträge seit 2010
vor 8 Jahren

Hallo trib,

was mich ja an den Symbol-Bibliotheken immer so anstinkt, ist dass diese nicht Abwärtskompatibel sind.

Aber was anderes: Ist es denn nicht möglich, eine Anwendung für den BC-Scanner zu schreiben ohne von den Symbol-Form-Klassen zu erben? Zumindest bei der MC3000 und MC3100-Reihe hatte ich damit nie Probleme. Da haben wir ganz einfache Forms erstellt, und die Funktionalität für den Barcodescanner manuell implementiert, also Initialisierung, Barcode nach Scan entgegen nehmen etc.

@AxelA

Wie sieht das denn aus, wenn du einfach mal ein Form erstellst (das nicht von den Symbol-Forms erbt) und das Programm einfach mal ausführst? Bekommst du dann die selbe Exception?

Wissen ist nicht alles. Man muss es auch anwenden können.

PS Fritz!Box API - TR-064 Schnittstelle | PS EventLogManager |

T
708 Beiträge seit 2008
vor 8 Jahren

Hallo inflames2k,

das ist ja exakt was ich schreibe. Erstmal eine "klassische" Form erstellen ohne den ganzen Symbol-Kram.
Dann kann man A) einen Dienst auf dem MDE starten, der den Barcode-Scanner aktiviert und die Daten an das Programm weiterreicht (Ähnlich wie z.B. bei ACD, wo der Scanner als Tastatureingabe fungiert)
Oder B) die von mir genannte DLL verwenden und implementieren. Dazu ist es nicht nötig von dieser Form abzuleiten oder diesen "SystemMonitor" aus dem Tutorial zu verwenden.

Wenn AxelA die von uns vorgeschlagenen Wege testet, kann ich auch gerne etwas Beispielcode bereitstellen. Habe den auf etwa 200 Motorola-Geräten von CE 5.0 bis Embedded 7 Compact laufen. Bis auf diese Symbol.Barcode.Reader-Klasse verwende ich reines CF ohne externe Komponenten.

Btw.: Die DLL ist von 2012, läuft ab CF2.0 und ich verwende die selbe für alle Geräte und CE Versionen. Habe also keinerlei Probleme mit der Kompatibilität. CF 1.0 ist imho eh unbrauchbar 😃