Altes VB-Express-Programm macht Probleme

  • VB.NET

Es gibt 14 Antworten in diesem Thema. Der letzte Beitrag () ist von RodFromGermany.

    Altes VB-Express-Programm macht Probleme

    Hallo, Ihr Spezialisten,
    ich wollte heute ein altes Projekt aus vb-express 2010 mit genau diesem Programm öffnen. Ich habe an dem Projekt schon seit 8 Jahren nichts mehr getan. Das Projekt wird auch geladen. Die diversen .vb-Teile zeigen auch brav ihren Code an. Wenn ich aber den die Form Form1.vb öffnen will, kommt die Meldung Für "[pfad] ... Form1.vb" ist kein Editor verfügbar. Es gibt aber auch einen File form1.designer.vb, der sich als Code öffnen lässt, und der anscheinend eine genaue Beschreibung der Form1 enthält.
    Was kann man damit anfangen? Wie gehe ich da weiter vor? Lässt sich das Projekt retten?

    Ich habe die Struktur und Inhalte mit anderen vb-express-2010 Projekten verglichen. Ich finde den entscheidenden Unterschied nicht, doch bei den anderen wird der Formdesigner sofort geladen.

    artnat.

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „artnat“ ()

    @artnat Hast Du das Projekt zwischenzeitlich auf ein höheres Studio umgestellt?
    Was passiert, wenn Du das Projekt mit einem neueren Studio öffnest?
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    @RodFromGermany: Das Programm wurde seit 2012 oder 2013 nicht angerührt. Und damals lief alles einwandfrei. Ich habe auch noch andere Programme aus der Zeit, die auch nie mehr angerührt wurden, aber die laufen einwandfrei. Ich habe nur alle Programmfiles en bloc auf eine andere Platte kopiert und von dort wieder zurückgeholt.
    @artnat Ich habe (ur)alte Projekte, die damals unter dem Studio 2005 erstellt wurden, und wenn ich die öffne, laufen die. Unter Win7.
    Unter welchem Betriebssystem arbeitest Du?
    Was passiert, wenn Du mit dem Stusio 2010 ein neues Projekt erstellst?
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    @artnat

    RodFromGermany schrieb:

    Was passiert, wenn Du mit dem Studio 2010 ein neues Projekt erstellst?
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!

    Habe inzwischen vb express 2013 installiert. Das geht auch nicht, aber es gibt eine genauere analyse des Fehlers aus. Siehe Screenshot im Anhang. Daraus geht hervor, dass irgendwelche Bibliotheken anscheinend nicht gefunden wurden. Nur finde ich die auch nicht. Habe daraufhin unter den Verweisen des Projektes nachgesehen. Das steht:"Microsoft Data Source Interfaces for ActiveX Data Binding Type Library", Type COM 1.0.0.0, keine lokale Kopie, <System kann den angegebenen Verweis nicht finden>Ich finde ihn allerdings auch nicht. Weiß nicht, wo ich ihn damals herbekommen habe.
    Bilder
    • Unbenannt.PNG

      84,01 kB, 1.627×650, 76 mal angesehen

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „artnat“ ()

    @artnat Das Projekt greift auf Controls zu, die auf dem Rechner nicht vorhanden sind.
    Die musst Du zunächst nach-installieren.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    @artnat Erstell eine Sicherheitskopie vom alten Projekt.
    Erstell ein neues Projekt mit diesem Control.
    Öffne parallel das alte Projekt.
    Ersetze im Designer-Code das alte Control durch das neue Control (Deklaration und Instanziiedrung, in genau 2 (zwei) Zeilen.
    Dann sollten handhabbarere Fehlermeldungen kommen wie Property nicht gefunden, Methoden nicht gefunden und so,
    Ersetze die Properties und Methoden durch die äquivalenten Properties und Methoden des neuen Controls, dazu erstelle Testcode im zweiten Projekt, um die Syntax übernehmen zu können.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Die Weise, wie das Chart-Control im alten Designer-Code steht, ist mit der Weise im neuen Code überhaupt nicht vergleichbar. Hier ein paar Ausschnitte aus den beiden Codes:

    Dim Anweisung im alten Code:

    Quellcode

    1. Dim resources As System.ComponentModel.ComponentResourceManager = New System.ComponentModel.ComponentResourceManager(GetType(Form1))

    Das ist die einzige Dim-Anweisung im alten Code.
    In neuen Code sieht das so aus:

    Quellcode

    1. Dim ChartArea1 As System.Windows.Forms.DataVisualization.Charting.ChartArea = New System.Windows.Forms.DataVisualization.Charting.ChartArea()
    2. Dim Legend1 As System.Windows.Forms.DataVisualization.Charting.Legend = New System.Windows.Forms.DataVisualization.Charting.Legend()
    3. Dim Series1 As System.Windows.Forms.DataVisualization.Charting.Series = New System.Windows.Forms.DataVisualization.Charting.Series()


    Die Typ-Anweisung im alten Code:

    Quellcode

    1. CType(Me.MSChart1, System.ComponentModel.ISupportInitialize).BeginInit()

    und im neuen:

    Quellcode

    1. CType(Me.Chart1, System.ComponentModel.ISupportInitialize).BeginInit()


    Der Chart-Abschnitt im alten Code:

    Quellcode

    1. Me.MSChart1.DataSource = Nothing
    2. Me.MSChart1.Location = New System.Drawing.Point(531, 97)
    3. Me.MSChart1.Name = "MSChart1"
    4. Me.MSChart1.OcxState = CType(resources.GetObject("MSChart1.OcxState"), System.Windows.Forms.AxHost.State)
    5. Me.MSChart1.Size = New System.Drawing.Size(611, 457)
    6. Me.MSChart1.TabIndex = 104

    und im neuen:

    Quellcode

    1. ChartArea1.Name = "ChartArea1"
    2. Me.Chart1.ChartAreas.Add(ChartArea1)
    3. Legend1.Name = "Legend1"
    4. Me.Chart1.Legends.Add(Legend1)
    5. Me.Chart1.Location = New System.Drawing.Point(70, 133)
    6. Me.Chart1.Name = "Chart1"
    7. Series1.ChartArea = "ChartArea1"
    8. Series1.Legend = "Legend1"
    9. Series1.Name = "Series1"
    10. Me.Chart1.Series.Add(Series1)
    11. Me.Chart1.Size = New System.Drawing.Size(341, 178)
    12. Me.Chart1.TabIndex = 0
    13. Me.Chart1.Text = "Chart1"


    Ich wüsste nicht, wie hier genau zwei Zeilen ersetzt werden sollen. Es scheint sich um zwei völlig verschiedene Chart-Tools zu handeln.
    @artnat Glückwunsch. :thumbup:
    Trotz eines kleinen Missverständnisses hast Du es geschafft.
    So soll das sein.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!