Mehrdeutigkeit im Projekt

  • VB.NET

Es gibt 9 Antworten in diesem Thema. Der letzte Beitrag () ist von Mono.

    Mehrdeutigkeit im Projekt

    Bekomm immo mehrere Fehlermeldungen:

    Printer" ist im Namespace "Microsoft.VisualBasic.PowerPacks.Printing.Compatibility.VB6" mehrdeutig
    PrintForm" ist im Namespace "Microsoft.VisualBasic.PowerPacks.Printing" mehrdeutig
    Microsoft.VisualBasic.PowerPacks.Printing.Compatibility.VB6.PrinterObjectConstants, Microsoft.VisualBasic.PowerPacks.Printing.Compatibility.VB6.PrinterObjectConstants" mehrdeutig.

    Kann mir da jemand weiterhelfen. Namespace sagt mir derzeit gar nichts...

    Quellcode

    1. If DruckerAuswahl.ShowDialog = Windows.Forms.DialogResult.OK Then
    2. Dim printer2 As New Printer
    3. Dim pd As New PrintAction()
    4. Dim pf As New PowerPacks.Printing.PrintForm
    5. pf.PrinterSettings.DefaultPageSettings.PrinterSettings.PrinterName = DruckerAuswahl.cmb_Drucker.SelectedItem.ToString
    6. pf.Form = Me
    7. pf.PrinterSettings.DefaultPageSettings.Margins = New System.Drawing.Printing.Margins(0, 0, 0, 0)
    8. printer2.PrintQuality = vbPRPQHigh
    9. pf.PrinterSettings.Copies = DruckerAuswahl.cmb_Anz_Kopien.SelectedItem.ToString
    10. Me.Opacity = 1
    11. pf.Print()
    12. Button_Drucken.Visible = False
    13. btn_Abbrechen.Visible = False
    14. PrintDocument1.PrinterSettings.Copies = PrintDialog1.PrinterSettings.Copies
    15. PrintDocument1.Print()
    16. Me.Close()
    17. End If


    Importiert wird folgendes:

    Quellcode

    1. Imports System.Drawing.Printing
    2. Imports System.Runtime.InteropServices
    3. Imports Microsoft.VisualBasic.PowerPacks.Printing.Compatibility.VB6
    4. Imports MySql.Data.MySqlClient

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „thommy1972de“ ()

    recherchier dir mal die Begriffe Namespace, und was die Imports - Anweisung bewirkt.

    Ich kann auch versuchen zu erklären:
    Also aller Code ist in Namespaces eingeschachtelt. Das bewirkt, dass vollqualifizierte Namen ziemlich lang werden.
    Die Imports-Anweisung bestimmt nun einen Namespace, der automatisch durchsucht wird, wenn im Code ein kurzer Name auftritt.

    Aber verstehen tu ich die Fehlermeldung nicht, und wie es kommt, dass der CodeName Printer im Namespace Microsoft.VisualBasic.PowerPacks.Printing.Compatibility.VB6.PrinterObjectConstants mehrfach auftreten soll.
    Ich kenne diesen Namespace nicht.
    Kann es sein das du 2 Powerpacks installiert hast und 2 Referenzen ?
    Microsoft.VisualBasic.PowerPacks.VS.DLL and the Microsoft.VisualBasic.PowerPacks.DLL? Dann musst du eine entfernen, da du den Namespace in beiden hast. Es ist definitiv ziemlich sicher ein Problem bei deinen Projektreferenzen.
    Das ist meine Signatur und sie wird wunderbar sein!
    Das ist genau das was ich geschrieben habe. Also ja, genau das ist das Problem.

    Ich weiss nicht genau welche du verwendest, aber ich denke du kannst: Microsoft.VisualBasic.PowerPacks.DLL. entfernen.
    Das ist meine Signatur und sie wird wunderbar sein!

    thommy1972de schrieb:

    entfernt
    Umbenennung wäre die Alternative:

    VB.NET-Quellcode

    1. Imports MyFile = System.IO.File
    2. ' ...
    3. Dim txt = MyFile.ReadAllText("bla")
    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!

    Mono schrieb:

    teilweise
    Natürlich muss da sorgfältig aufgepasst werden.

    VB.NET-Quellcode

    1. Imports PP1 = Microsoft.VisualBasic.PowerPacks
    2. Imports PP2 = Microsoft.VisualBasic.PowerPacks.Vs
    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!
    Imports Microsoft.VisualBasic.PowerPacks.Printing.Compatibility.VB6 <- es geht um diesen Namespace.

    Microsoft.VisualBasic.PowerPacks.Vs das ist lediglich der Assembly Name. Solange beide referenziert sind und beide den Namespace Microsoft.VisualBasic.PowerPacks.Printing.Compatibility.VB6 enthalten wird es nicht laufen. Scheißegal ob du einen Alias verwendest oder nicht. Du kannst auch den vollen Namen nehmen:

    Microsoft.VisualBasic.PowerPacks.Printing.Compatibility.VB6.Printer

    und es wird eine Mehrdeutigkeit geben.
    Das ist meine Signatur und sie wird wunderbar sein!