Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Portal
  • |
  • Mitglieder
Beiträge von Seikilos
Thema: XSD Validierung deutlich gesprächiger machen
Am im Forum: Datentechnologien

Was mir gerade auffällt, ein Teil der Frage ist noch offen, ob man bei Verletzung von Constraints mehr Details bekommen kann.

Fehler
The 'name' attribute is invalid - The value '' is invalid according to
its datatype 'NonEmptyStringNoWhitespacesAtBeginningAndEnd' - The
Pattern constraint failed.
Erfordert einen Blick in die XSD um genau sagen zu können, was fehlgeschlagen ist. auch wenn der lange Name versucht es bereits auszudrücken.

Der XML Parsers von Notepad++ ist wesentlich Aussagekräftiger:
Fehler
ERROR: Element 'LightSource', attribute 'name': [facet 'minLength'] The value '' has a length of '0'; this underruns the allowed minimum length of '1'.
ERROR: Element 'LightSource', attribute 'name': [facet 'pattern'] The value '' is not accepted by the pattern '.*\S'.
ERROR: Element 'LightSource', attribute 'name': '' is not a valid value of the atomic type 'NonEmptyStringNoWhitespacesAtBeginningAndEnd'.

Hängt das generell mit der Validator Implementierung in .net zusammen? Die Exception für solche Fälle gibt leider nicht mehr her.

Thema: XSD Validierung deutlich gesprächiger machen
Am im Forum: Datentechnologien

Ich muss sagen, ich bin irritiert.
Ich habe diese Werte bereits im Debugger betrachtet und sie waren damals immer 0 und 0.

Wahrscheinlich habe ich zu dem Zeitpunkt ein in-memory XML mit dem XDocument validiert, klar dass es dort keine Zeilen geben kann.

Danke.

Thema: XSD Validierung deutlich gesprächiger machen
Am im Forum: Datentechnologien

Ich generiere XML Daten und muss auf der XSD Ebene eine Validierung durchführen.

Gängige Techniken wie XmlDocument.Validate, XDocument.Validate und XmlReader mit einem ValidationEventHandler sehen alle recht ähnlich aus:


public void Validate()
{
  var schemas = new XmlSchemaSet();
  schemas.Add("", fullXsdPath);
  var doc = XDocument.Load(metaXmlFile);
  doc.Validate(schemas,ValidationEventHandler);
}

public void ValidationEventHandler(object sender, ValidationEventArgs e)
        {
            switch (e.Severity)
            {
                case XmlSeverityType.Error:
                    Console.WriteLine("Error: {0}", e.Message);
                    break;
                case XmlSeverityType.Warning:
                    Console.WriteLine("Warning {0}", e.Message);
                    break;
            }

        }

liefern aber sehr magere Ergebnisse aus.
Ich bekomme Meldungen wie
Fehler
The 'name' attribute is invalid - The value '' is invalid according to
its datatype 'NonEmptyStringNoWhitespacesAtBeginningAndEnd' - The
Pattern constraint failed.

Diese Meldung hilft mir jedoch nicht weiter, weil es weder den XML Kontext im Sinne von ein paar Zeilen XML um die Stelle herum zeigt noch eine Zeile oder ähnliches ausgibt, wo ich gucken muss.

Die XML kann sehr groß werden und nicht alle "name" attribute sind obligatorisch. Bestimmte Typen können einen Leerstring haben, usw. Aus dieser Meldung ist nicht sehr leicht ableitbar, wo das Problem ist.

Notepad++ mit den XML Tools liefert mir diesbezüglich folgende Ausgabe
Fehler
ERROR: Element 'LightSource', attribute 'name': [facet 'minLength'] The value '' has a length of '0'; this underruns the allowed minimum length of '1'.
ERROR: Element 'LightSource', attribute 'name': [facet 'pattern'] The value '' is not accepted by the pattern '.*\S'.
ERROR: Element 'LightSource', attribute 'name': '' is not a valid value of the atomic type 'NonEmptyStringNoWhitespacesAtBeginningAndEnd'.

Damit kann man deutlich mehr anfangen, auch wenn die Antwort sehr technisch ist, so ist doch zumindest das Element zu sehen.

Gibt es einen Weg, wie man deutlich mehr Informationen durch die C# Validierungen bekommen kann?

Thema: Wie migriert man user.configs unter Roaming zwischen versionen? (ConfigurationSection)
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

Hallo,

wir haben eine executable, dessen Assembly version beim Bauen automatisch generiert wird:

[assembly: AssemblyVersion("1.1.*")]

Diese Anwendung benutzt die user.config um eigene Einstellungen abzulegen. Dafür wurde eine eigene ConfigurationSection definiert und im Code benutzt.
Diese Anwendung benutzt nicht die Settings (welche ja auch in die gleiche user.config geschrieben werden)

Was mir jetzt fehlt, ist ein Verständnis, wie man die user.config aus roaming migrieren soll, wenn man eine neue Version aufspielt.

Aktuell wird immer eine Config unter
C:\Benutzer\[Benutzer]\AppData\Roaming\[CodePath]\AssemblyVersion\user.config abgelegt.

jeder Build erzeugt eine Version wie 1.1.5000.23456 oder 1.1.5000.34567.


Wie migriert man diese Configs auf die aktuelle Version? Mit den Buildnummern ist bei uns das Problem verschärft, weil bei jedem Build, aber wenn ich die Anwendung auf 1.2 stelle, so muss es doch möglich sein, die Version zu migrieren, oder?

Im Netz findet man für Settings so etwas wie ApplicationSettingsBase.Upgrade, aber da ich keine Settings habe, nützt mir das nicht sehr.
Desweiteren gibts noch "manuelle Copy" Lösungen, die ich sehr unglücklich finde, weil hier keine (etwaige) Strukturanpassung gibt.

Thema: Gibt es eine Möglichkeit, WCF Befehle per Hand zu senden?
Am im Forum: Netzwerktechnologien

.net zu .net waren die Anforderungen, klappt natürlich auch gut.

Jetzt gibts ein seitliches Requirement, dass ein gewisser Satz aus Befehlen auch ohne WCF gehen soll. Aktuell ist das mit einem manuellen TCP Listener gelöst, aber die Doppelung der Aufrufe ist umständlich, daher wollte ich mal gucken, ob ich WCF faken kann.
Damit Linux, oder nicht .net Technologie drauf zugreifen kann.

Da ist es fast einfacher, über Reflection das Interface generisch an den TCP Listener zu binden, aber dabei habe ich das Gefühl, als würde ich die Arbeit von WCF nochmal in schlecht machen :/

Thema: Gibt es eine Möglichkeit, WCF Befehle per Hand zu senden?
Am im Forum: Netzwerktechnologien

Hallo,

bezüglich des XML, muss der Request auch ein XML sein, oder ist die Anfrage eine URL im Sinne von .../GetMethodeAufInterace/Param1/Param2?

Ich hatte mit web requests und WebGet Attributen und der Konfig rumgespielt. Auf die http Seite des Service bin ich gekommen, aber ich hab keine Parameter Übergabe zusammenbauen können, die einen Sinn ergibt.

TCP ist ein wenig komplizierter, weil ich nicht genau sehen, was da rüber geht. Hab zwar den Traffic mitgeschrieben, aber die Requests konnte ich nicht reproduzieren, wenn ich diese mit nem TcpWriter wiederholt habe. Vor allem weil der Request eine URL darstellt, die in dem Intranet nicht mal gültig ist.

Ich denke das Hauptproblem ist, dass ich keine Ahnung von WCF habe und kein ASP.net einsetzen will.

Thema: Gibt es eine Möglichkeit, WCF Befehle per Hand zu senden?
Am im Forum: Netzwerktechnologien

Hallo,

gibt es eine Möglichkeit, in die WCF Kommunikation manuell einzugreifen?

Endpoints werden ja, wie in diesem Beispiel definiert

<endpoint address="net.tcp://localhost:8002/MyProject"  binding="netTcpBinding"  contract="SomeContract.IMyContract" />


Die Kommunikation ist über TCP aufgebaut, Client und Server kommunizieren problemlos miteinander.

Nun frage ich mich, ob es möglich ist, einen Client komplett manuell zu implementieren und Befehle per Hand abzusetzen. Ich kenne mich nicht sehr gut aus, wie kompliziert der WCF Handshake bei der Verbindung ist.

Der Hintergrund ist die Frage, ob es möglich ist, einen Client zu schreiben, der nichts über den Kontrakt kennt, aber dennoch auf einer grundlegenden Ebene mit dem Server kommuniziert.
Natürlich müssten Daten, die sonst über WCF de/serialisiert worden sind weggelassen oder per Hand verarbeitet werden, aber wären damit einfache Befehle möglich?

Thema: DataGrid: Editierende Row Schriftfarbe ändern
Am im Forum: GUI: WPF und XAML

Nur ein Hinweis, der eventuell in die richtige Richtung führt:
Meiner Meinung nach, müsstest du in der Lage sein, ein Style mit einem Trigger zu definieren, der auf die Row angewendet wird, wenn der korrekte Trigger, wie "BeginEdit"? gefeuert wird. Im Style kannst du dann die Farbe ändern.
(ungetestet)

Thema: Wie handhabt man reine Datencontainer, wenn es keine "friend" Klassen gibt?
Am im Forum: Rund um die Programmierung

Internal finde ich gut. Das könnte es sein.

Zitat
Im GUI verwendest du die Schnittstelle; das GUI kennt die Klasse gar nicht. In der Logik verwendest du die Klasse und die Schnittstelle interessiert dich nicht. Was spricht bei dir dagegen?
Wenn das Interface IProject ist und die GUI übergibt immer das IProject an die Logik, so muss bei jeder Übergabe an die Logik das IProject in ein Project gecastet werden, damit Setter benutzt werden können.
Jede Logik Methode, die ein IProject bekommt, muss daher casten.

Thema: Wie handhabt man reine Datencontainer, wenn es keine "friend" Klassen gibt?
Am im Forum: Rund um die Programmierung

Wenn es das übliche Vorgehen ist, stelle ich mich dem nicht entgegen, ich finde nur das casten in jeder einzelnen Methode der Logik etwas mühsam.

Bei der GUI stimme ich dem zu, dass ist elegant gelöst.

Thema: Wie handhabt man reine Datencontainer, wenn es keine "friend" Klassen gibt?
Am im Forum: Rund um die Programmierung

Hallo,
ich bin bei der Lösung unschlüssig.
Der Contract hat dann nur die Getter, das ist ein Vorteil, aber alle Operationen auf der Logik erfordern dann das casten in die private Klasse.

Ist das der übliche Weg?

Thema: Wie handhabt man reine Datencontainer, wenn es keine "friend" Klassen gibt?
Am im Forum: Rund um die Programmierung

Hallo,

bei einem Projekt habe ich ein Austauschobjekt, welches Projekt heißt und so aussieht:


    public class Project
    {
        public string Path { get; set; }
        public bool Active { get; set; }
    }

Diese Objekte generiert die Logik und gibt sie nach Außen (GUI), welche diese dann anzeigt.
Weil die GUI diese Objekte vorhält und braucht, um Operationen in der Logik zu triggern, reicht die GUI bei Anfragen, wie z.B "Logic.SetProjectActiveStatus(Project, bool)" das Projekt und einen bool rein.
Die Methode selber führt dann so etwas aus wie:


project.Active = false;
// Weitere Statewechsel, File IO, etc

Nun bin ich selber wegen der Unzulänglichkeit dieses Ansatz auf die Nase gefallen.
Da der Datencontainer mutable ist, hab ich in einem Unit Test anstatt des Umwegs über Logic.SetProjectActiveStatus Active manuell auf false gesetzt, denn SetProjectActiveStatus hatte bis dato nur Active = false.
Jetzt aber, durch mehr Logik in der Logik schlagen recht viele der Tests fehlt.

Hier fehlt mir ein bisschen das friend Konzept aus C++.

Wie wird das generell gehandhabt? Ich will keine Logik in die Datencontainer, d.h das Property Active soll nicht mehr tun (kann es auch garnicht, der Kontext fehlt).
Den Container immutable zu machen gefällt mir auch nicht, weil ich jedes mal neue Project instanzen erzeugen muss, die dann zur GUI, etc wandern. Dadurch muss ich die Datenhaltung in der GUI ändern, weil die Projekte nicht mehr vergleichbar sind. Außerdem muss ich die Projekte wegen so etwas wie einem geänderten Active Flag klonen.

Was würde man da machen? Eine INotifyPropertyChanged Schnittstelle wäre denkbar, aber ich will ja nicht, dass GUI auf den Daten etwas macht.

Thema: Hat RequestWithResponsePin ein Äquivalent in der async-await-Welt?
Am im Forum: Rund um die Programmierung

Hallo herbivore,

danke für die Antwort. Ich bin bei meinen Versuchen auch zu einem ähnlichen Schluss gekommen.
Ich dachte, dass ich eventuell was übersehe, so etwas ist ja immer nur so lange nicht möglich, bis es einer macht :)

Thema: Suche Variable für Filename oder Methode für optionale Argumente (C# 5.0?)
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Mir geht es da genauso. Als ich im Delirium nach den Attributen gesucht habe, war ich auch der Meinung, dass es so

void M (String caller = [CallerMemberName])
aussehen würde, weil es für mich intuitiv wäre

Thema: Hat RequestWithResponsePin ein Äquivalent in der async-await-Welt?
Am im Forum: Rund um die Programmierung

Vor einiger Zeit hat Ralph Westphal das Konzept des RequestWithResponsePins vorgestellt. Da geht es um Event-Basierte Programmierung und dem Problem, dass das Abschicken einer Frage aus Methode A durch Events als Antwort in einer Methode B zurück kommt und damit die Geschäftslogik stückelt.

Um die Antwort in der gleichen Methode zu bekommen, in der die Frage gestellt worden ist, hat er die Klasse RequestWithResponsePin vorgestellt:


using System;

namespace RequestWithResponsePin
{
   public class RequestWithResponsePin<TRequest, TResponse>
   {
      public RequestWithResponsePin(TRequest data, Action<TResponse> responsePin)
      {
         Data = data;
         ResponsePin = responsePin;
      }

      public TRequest Data { get; private set; }
      public Action<TResponse> ResponsePin { get; private set; }
   }

   public static class RequestExtensions
   {
      public static void Request<TRequest, TResponse>(this Action<RequestWithResponsePin<TRequest, TResponse>> outputPin, TRequest data, Action<TResponse> responsePin)
      {
         outputPin(new RequestWithResponsePin<TRequest, TResponse>(data, responsePin));
      }
   }
}


Das ermöglicht weiterhin Event-basiert zu arbeiten, á la Event Based Components (EBC), aber die Logik zu konzentrieren.
Das Verbinden der Events mit Handlern kann über ebc.componentbinder dann sogar automatisch folgen, usw.

Hier ein Beispiel (Event und Handler in einer Klasse, würde man auf verschiedene Komponenten aufteilen):


public class EBCDemo
   {
      public event Action<RequestWithResponsePin<string, bool>> OnSomething;

      public void ProcessSomething(RequestWithResponsePin<string, bool> req )
      {
         var str = req.Data; // mach was

         // Antwort
         req.ResponsePin(true);
      }

      public void Start()
      {
         var result = false;
         // Event feuern und Antwort bekommen
         OnSomething.Request("mein input", output => result = output );

         Console.WriteLine("Antwort {0}", result);
      }
   }

Und so wird es benutzt:

 [STAThread]
      static void Main()
      {

         var ebcDemo = new EBCDemo();
         // Bind
         ebcDemo.OnSomething += ebcDemo.ProcessSomething;
         
         ebcDemo.Start();

      }

Eine recht feine Sache, welche die Abhängigkeiten der einzelnen Komponenten lösen kann.

Mein Problem ist, wie kann ich dieses Konzept in die Welt von async und await bringen?
Der Vorteil von async/await ist, dass ich ähnlich wie beim RequestWithResponsePin die Logik zusammen halten kann. Hier nur auf Threads bezogen, die länger dauern.
Ich muss also nicht auf nen BackgroundWorker.RunWorkerCompleted warten, und dort den Rest der Geschäftslogik fortsetzen.

Wenn ich also im obrigen Beispiel in ProcessSomething ein Thread.Sleep(3000) mache, so friert die Ausführung ein. In der Konsole merkt man dies nicht, in der Gui schon.
Allerdings bekomme ich es nicht hin, den RequestWithResponsePin async fähig zu machen.
Entweder es geht nicht, oder ich habe zu wenig Erfahrung mit async (was wahrscheinlicher ist :) )

Damit das ganze async funktioniert müsste meines Verständnisses nach das bool in OnSomething und ProcessSomething als Task<bool> verpackt werden.

Die ProcessSomething würde dann so aussehen müssen:


      public void ProcessSomething(RequestWithResponsePin<string, bool> req )
      {
         var str = req.Data;
         var res = await Task.Run(
            () =>
            {
               Thread.Sleep(3000);
               return true;
            }
         );
         req.ResponsePin(res);
      }

Geht natürlich nicht, weil die Methode async modifier braucht (kein Problem) aber auch einen Task returnen muss.
Da aber der Return-Value dieser Methode nicht benutzt wird, sondern quasi zur nächsten Action über req.ResponsePin(true); propagiert wird, bekomme ich keine Asynchronizität dadurch.
Ferner habe ich das Gefühl, als müsste das bool im req in ein Task gewrappt werden, was dann aber über req.ResponsePin(res); nicht mehr zurückgegeben werden kann.

Thema: Suche Variable für Filename oder Methode für optionale Argumente (C# 5.0?)
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Hallo herbivore,

das war die Seite mit den Beispielen für Caller Attributes:
An Introduction to New Features in C# 5.0

Die hat nur eine furchtbare Sourceformatierung, aber immerhin sieht man wie Caller Attributes eingesetzt werden können.

Thema: Suche Variable für Filename oder Methode für optionale Argumente (C# 5.0?)
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Ah mist. Es ist C# 5.0 (Hab die Version verwechselt)

Was ich suchte sind die Caller*:


public void Log([CallerMemberName] string Message = "")
{
}

Thema: Suche Variable für Filename oder Methode für optionale Argumente (C# 5.0?)
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Vor einiger Zeit habe ich über die neuen .net 4.5 und C# 4.0 Features gelesen.
Darunter waren die optionalen Argumente.
Nun wurde in dem Zusammenhang ein nettes Feature aufgeführt, was ich einfach nicht mehr finden kann.

Es ging um eine Möglichkeit logging sehr bequem zu machen. Optionale Argumente sehen ja so aus:


public void Foo(string msg = "irgend ein string") {}

Nun wurde in dem Beispiel eine Signatur benutzt, bei dem der Default Wert scheinbar ein vom Compiler oder Precompiler belegter Wert ist.
Eine Log Signatur sieht dann so aus


public void Log(string method = [Method]) {}

Wenn man dann irgendwo


Log();
benutzt, dann wird vom Compiler [Method] automatisch gefüllt.

Ich habe deutlich die eckigen Klammern in Erinnerung, aber ich finde nirgend die Beschreibung dieses Features.

Entweder ich bringe es durcheinander, oder das war nur Pseudocode.

Thema: Kann eine .net 4.5 Lib (plugin) in einer 3.5 Anwendung laufen?
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

Hallo,
jetzt sehe ich es. Vorhin hatte ich den Abschnitt über Components wohl übersehen.

Danke

Thema: Kann eine .net 4.5 Lib (plugin) in einer 3.5 Anwendung laufen?
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

Hallo,
kannst du mir den Link geben?
Ich habe hier Overview of the .NET Framework und Getting Started with the .NET Framework nichts finden können

Danke

Thema: Kann eine .net 4.5 Lib (plugin) in einer 3.5 Anwendung laufen?
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

Hallo,

ich finde keine konkrete Information darüber, ob ich ein Plugin mit VS2012 und .net 4.5 schreiben kann, welches in einer in 3.5 geschriebener Anwendung läuft.

Die Applikation lädt die dll zur Laufzeit, die 4.5 Assembly wird nicht in der Applikation referenziert. Soweit ich gegoogelt habe, dürfte das nicht gehen.
Die Struktur sieht ungefähr so aus:
Applikation referenziert CommonInterface.dll beide sind 3.5
Plugin in 4.5 referenziert CommonInterface.dll
Applikation lädt zur Laufzeit Dlls im Ordner Plugions und sucht nach der jeweiligen Interface Implementierung.
Das Plugin selber soll nicht re-targeted werden, sondern nach Möglichkeit mit 4.5 laufen.
Wenn das Plugin jetzt laufen würde, weiß ich nicht, wie die Aufrufe von 3.5 nach 4.5 und wieder zurück behandelt werden.

Danke

Thema: Anwendung neustarten bei AppCrash oder "Keine Rückmeldung"
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Denkbare wäre ein Hintergrundprozess, der prüft, ob die Zielanwendung reagiert. Wenn sie es nicht mehr tut, spawnst du diese neu.

Prüfen, ob eine Anwendung noch reagiert geht mit der Google-Suche leicht zu finden. z.B Ermitteln, ob ein Prozess reagiert

Thema: Verhindern einer OutOfMemoryException, wenn die Datei als ganzes zu groß für den Hauptspeicher ist
Am im Forum: Rund um die Programmierung

Eine recht banale Antwort: Wenn du den Algorithmus oder das Verarbeiten nicht stückeln kannst, dann bleibt dir nicht viel mehr, als die Anwendung mit 64 bit zu kompilieren und soviel Arbeitsspeicher nach zulegen, bis die Datei als ganze gelesen werden kann.

Pagefile Größe könnte man Erhöhen, aber damit hast du keine Performance Vorteile gegenüber dem Stückeln. Auf Platte ist auf Platte

Thema: Checkedlistbox: Alle Häkchen entfernen
Am im Forum: GUI: Windows-Forms

Hallo,
nimm eine For-Schleife mit dem Count der Einträge der Liste und setze jeden einzelnen auf unchecked.

Edit: Hier gibt es eine Liste der geheckten Elemente CheckedListBox.CheckedItems-Eigenschaft

Thema: Wie sieht die Fehlermeldung aus, wenn kein passendes Framework für Exe gefunden worden ist (Win7)
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

Hallo,

die Meldung ist

Fehler
Programm funktioniert nicht mehr

Ein Problem hat die richtige Ausführung dieses Programms verhindert. Schließen Sie das Programm.
-> Programm schließen

Event log
Fehler
Protokollname: Application
Quelle: Application Error
Datum: 11.07.2012 13:32:56
Ereignis-ID: 1000
Aufgabenkategorie:(100)
Ebene: Fehler
Schlüsselwörter:Klassisch
Benutzer: Nicht zutreffend
Computer: name
Beschreibung:
Name der fehlerhaften Anwendung: programm.exe, Version: 8.31058, Zeitstempel: 0x4fc79915
Name des fehlerhaften Moduls: KERNELBASE.dll, Version: 6.1.7601.17651, Zeitstempel: 0x4e211319
Ausnahmecode: 0xe0434f4d
Fehleroffset: 0x0000b9bc
ID des fehlerhaften Prozesses: 0x%9
Startzeit der fehlerhaften Anwendung: 0x%10
Pfad der fehlerhaften Anwendung: %11
Pfad des fehlerhaften Moduls: %12
Berichtskennung: %13
Ereignis-XML:
<Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event">
<System>
<Provider Name="Application Error" />
<EventID Qualifiers="0">1000</EventID>
<Level>2</Level>
<Task>100</Task>
<Keywords>0x80000000000000</Keywords>
<TimeCreated SystemTime="2012-07-11T11:32:56.000000000Z" />
<EventRecordID>8456</EventRecordID>
<Channel>Application</Channel>
<Computer>name</Computer>
<Security />
</System>
<EventData>
<Data>programm.exe</Data>
<Data>8.231058</Data>
<Data>4fc79915</Data>
<Data>KERNELBASE.dll</Data>
<Data>6.1.7601.17651</Data>
<Data>4e211319</Data>
<Data>e0434f4d</Data>
<Data>0000b9bc</Data>
</EventData>
</Event>

Ich habe mit VS da remote nativ remote debuggt und einen Callstack mit wow64.dll usw bekommen, also tief in Windows selber.

Was mich irritiert ist, wenn eine DLL nicht gefunden worden ist (dll in einem Plugin, usw) dann hätte doch sxstrace etwas liefern müssen und das tat es nicht.

Anwendung ist 32 bit und Zielframework 2.0

Thema: Wie sieht die Fehlermeldung aus, wenn kein passendes Framework für Exe gefunden worden ist (Win7)
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

Hallo,
ich habe hier ein interessantes Problem.
Ein Windows 7 64 bit Ultimate mit .net 3.5 und eine executable, bei der im IL-Disassembly

// Metadata version: v2.0.50727
steht.
Wenn die Exe auf dem Rechner gestartet wird, steht da nur "Exe funktioniert nicht mehr" und ich kann nur noch beenden. Keine weitere Info, nichts zum aufklappen.
Auf dem Rechner ist kein VS drauf.

Nun müsste aber mit 3.5 ja das 2.0 dabei sein. Denn wenn ich versuche .net 2.0 zu installieren, sagt er mir, dass es bereits drauf ist.
Unter Programme steht es aber nicht aufgeführt. Daher schließe ich daraus, dass 2.0 Assembly mit 3.5 installiert worden sind. 3.5 ist unter Windows Features angehakt.

Jetzt frage ich mich, wie sieht die Fehlermeldung aus, wenn das passendere Framework nicht da ist? Es wurde keine sxs Meldung ausgegeben, dass irgendeine spezifische Version einer Assembly nicht gefunden worden ist, sondern wirklich nur "Funktioniert nicht mehr"

Ich habe schon das 2.0.5er Compact Framework zusätzlich installiert. Kein Erfolg


P..S: Die FAQ habe ich durch geguckt

Thema: Komponenten zum grafischen Aufbau von Strukturen gesucht
Am im Forum: Rund um die Programmierung

Ich kenne Freemind (für MindMaps).
BizAgi Process Modeler für Workflows
IHMC CmapTools

Guck dir die mal an. Vielleicht von unten nach oben :)

Thema: Darstellungsfehler in Managed DirectX 9: Treppenartefakte an Kanten
Am im Forum: Grafik und Sound

Das ist trotzdem ungewöhnlich.
Wo ist denn die Far-clipping plane?

Thema: Darstellungsfehler in Managed DirectX 9: Treppenartefakte an Kanten
Am im Forum: Grafik und Sound

Wie weit sind die Objekte vom Nullpunkt entfernt?

Thema: Brauche Rat beim Durchsuchen von großen Binärdateien nach bestimmten Strings
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Dictionary ist eine Art HashSet, bei dem zu jedem Hash Key ein Value zugewiesen wird.
Du brauchst also nur Dictionary<string, int>

Konkrete Antwort auf die Frage: Ja, da es generisch ist, kannst du auch Dictionary<HashSet<string>, int> schreiben, macht aber keinen Sinn.