2014-05-02 7 views
10

Ich bereinige eine C# Visual Studio 2008-Lösung und habe in einen Haken geraten. Ich versuche, unnötige Dateien zu entfernen, um den Code einer korrekten Versionskontrolle unterziehen zu können. Dabei löschte ich die vorhandene .su-Datei und alle binären Artefakte, um einen sauberen Start zu erhalten. Wenn ich dies tue, kann mein Programm nicht über die Bibliothek Microsoft.PointOfService auf den angeschlossenen Barcode-Scanner zugreifen. Ich habe das Problem auf etwas im .suo eingegrenzt. Wenn ich das Original .suo erhalte, kann ich die Liste der angeschlossenen Scanner abrufen. Bei einem neuen erscheint der angeschlossene Scanner nicht im Ruf an PosExplorer.GetDevices().Visual Studio SUO-Datei bricht Anwendung

Es ist mir nicht klar, warum irgendetwas, das mit dem .suo zusammenhängt, das Verhalten eines Programms beeinflussen würde. Die Lösung enthält drei Projekte, von denen zwei von der Hauptanwendung referenziert werden. Während ich dieses Problem im Test nachverfolge, stelle ich fest, dass die Referenzen auf diese beiden Projekte manchmal mit der sauberen .suo-Datei brechen und neu erstellt werden müssen. Sie haben nichts mit dem Scanner zu tun. Ich muss auch die Debug-Build-Konfiguration für das Top-Level-Projekt erneut aktivieren.

Irgendwelche Ideen? Ich würde lieber nicht in das Legacy .Suo einchecken müssen, wenn ich es vermeiden kann.

aktualisiert

Ich bemerkte, dass zusätzlicher Scanner-Treiber-DLLs (HHSO4NET.dll) geladen wird, wenn das funktionelle Vermächtnis .suo in Gebrauch ist. Die geänderten Teile des VS-Ausgabefensters sind nachstehend aufgeführt.

Legacy-.suo Ausgabefenster:

'foo.vshost.exe' (Managed): Loaded 'C:\Program Files (x86)\Honeywell\UPOS Suite\POS4NET Suite\POS for NET\bin\HHSO4NET.dll' 
'foo.vshost.exe' (Managed): Loaded 'C:\Windows\assembly\GAC_MSIL\Microsoft.PointOfService.ControlBase\1.12.0.0__31bf3856ad364e35\Microsoft.PointOfService.ControlBase.dll' 
'foo.vshost.exe' (Managed): Loaded 'C:\Program Files (x86)\Microsoft Point Of Service\SDK\Samples\Simulator Service Objects\Microsoft.PointOfService.DeviceSimulators.dll' 
'foo.vshost.exe' (Managed): Loaded 'C:\Program Files (x86)\Microsoft Point Of Service\SDK\Samples\Example Service Objects\Microsoft.PointOfService.ExampleServiceObjects.dll' 
'foo.vshost.exe' (Managed): Loaded 'C:\Program Files (x86)\Honeywell\UPOS Suite\POS4NET Suite\POS for NET\bin\HHSO4NET.dll' 
'foo.vshost.exe' (Managed): Loaded 'C:\Windows\assembly\GAC_MSIL\Microsoft.PointOfService.ControlBase\1.12.0.0__31bf3856ad364e35\Microsoft.PointOfService.ControlBase.dll' 

reinigen .suo Ausgabefenster:

'foo.vshost.exe' (Managed): Loaded 'C:\Program Files (x86)\Microsoft Point Of Service\SDK\Samples\Simulator Service Objects\Microsoft.PointOfService.DeviceSimulators.dll' 
'foo.vshost.exe' (Managed): Loaded 'C:\Windows\assembly\GAC_MSIL\Microsoft.PointOfService.ControlBase\1.12.0.0__31bf3856ad364e35\Microsoft.PointOfService.ControlBase.dll' 
'foo.vshost.exe' (Managed): Loaded 'C:\Program Files (x86)\Microsoft Point Of Service\SDK\Samples\Example Service Objects\Microsoft.PointOfService.ExampleServiceObjects.dll' 

Update 2

ich das Problem mit dem Erbe .suo reproduziert haben durch Deinstallation der zuvor installierten Release-Version des Programms (msi-installer aus einem VS-Bereitstellungsprojekt). Es scheint, dass ein Registrierungsverweis auf die HHOS4NET.DLL, die vom Installer erstellt wurde, aufgenommen wird, wenn der Build mit der Datei legacy.suo erstellt wurde, und nicht mit einem neuen. Irgendwelche Ideen, wo man nach einem Täter suchen kann?

Update 3

Es scheint, dass die Deinstallation des Arbeits Anwendung ein bisschen ein Ablenkungsmanöver war. Es löschte die Configuration.xml Datei, die der Scannertreiber benötigt, um den Scanner zu sehen (PnP? Ja richtig). Das lässt mich immer noch mit einer geheimnisvollen Magie. Suo. Ich habe versucht, die angeschlossenen POS-Geräte mit einer einfachen C# -Konsolen-App zu nummerieren, und das hat nicht funktioniert, also ist definitiv etwas mit dem POSfor.net-Framework von MS oder dem Honeywell-Treiber nicht möglich. Sie sind wirklich ein POS.

Für die Aufzeichnung gibt es keine speziellen Debug-Einstellungen in der bekannten "gut" .suo. Ich extrahierte Saiten daraus und nichts fiel auf. Als nächstes werde ich versuchen, es in die Konsolen-App einzufügen, um zu sehen, ob es seine magischen Eigenschaften in einer nicht verwandten Lösung behält.

+0

Vielleicht gibt es ein spezielles Debug-Befehlszeilenargument? Diese werden in der .suo gespeichert. – Cameron

+0

Sind in der Debug-Registerkarte für das Projekt Standard-Befehlszeilenparameter oder Arbeitsverzeichnis festgelegt? –

+0

Anything custom unter Projekteigenschaften -> Debugging? Es könnte Zeit sein, den Prozessmonitor von Sysinternals zu öffnen. – Cameron

Antwort

0

Überprüfen Sie, ob der SUO auf eine bestimmte Bitness abzielt. Manchmal muss man explizit sein. Gehen auf die Ausgabe beginnt der Ärger, wenn es

Program Files (x86)\Honeywell\UPOS Suite\POS4NET Suite\POS for NET\bin\HHSO4NET.dll 

Falsche Bitness kann vermasseln Lastpfade und die Namensauflösung nicht geladen werden kann. Hast du irgendwelche anderen Pfade im magischen SUO definiert?Kann ich eine Kopie davon zum Sezieren haben?

Verwandte Themen