Fehler bei anderer Compilierung



  • Hallo.

    Ich habe eine Library geschrieben, mit welcher ich SAP steuern kann. Was genau darin geschieht, ist denke ich erstmal nicht so wichtig.
    Mache ich einen Rechtsklick auf das Projekt und klicke "Build", so wird die Bibliothek erstellt. Allerdings kann unser "Roboter" diese Bibliothek dann nicht einbinden.

    Deshalb mache ich es über die Kommandozeile:
    csc /t:library /out:libname.dll ".../CodeFile1.cs" ".../CodeFile2.cs" /reference: ".../reference1.dll" ".../reference2.dll" /unsafe

    Wenn ich über csc kompiliere bekomme ich nun eine Fehlermeldung für folgende Zeile:

    for (int i = 0; i < GV.ColumnCount; i++) {
                                if (KeyList.Columns.Contains(GV.GetColumnTooltip(GV.ColumnOrder[i]).ToString().Trim().ToUpper())) //Fehler!
                                {
                                    dr[GV.GetDisplayedColumnTitle(GV.ColumnOrder[i]).ToString().Trim().ToUpper()] = true; //Fehler
                                }
                            }
    

    Die Fehlermeldung lautet:
    "CS0021: Eine Indizierung mit [] kann nicht auf einen Ausdruck vom Typ object angewendet werden."

    Wenn ich statt der eckigen Klammern runde Klammern verwende erhalte ich statt dessen folgende Fehlermeldung:
    "Der nicht aufrufbare Member "ISapGridViewTarget.ColumnOrder" kann nicht wie eine Methode verwendet werden."

    Das Komische ist nur: Wenn ich den Code in VisualStudio kompiliere (rechtsklick, build) und dann ausführe, läuft er wunderbar und liefert auch korrekte Ergebnisse. Scheinbar ist die Fehlererkennung im zweiten Fall "strenger" eingestellt oder wie kann ich ich das umgehen?

    Vielen Dank,
    CJens.



  • Von welchem Typ ist die ColumnOrder-Eigenschaft, auf die du per Indexer zugreifen willst? Wenn es wirklich Object ist, dann ist es klar, warum eine Fehlermeldung auftritt.

    Ansonsten kannst du auch mal schauen, welche Parameter beim Build mit VS an die csc.exe mitgegeben werden. Kann man aktivieren: https://stackoverflow.com/questions/25507040/how-to-see-csc-exe-or-vbc-exe-parameters-when-building-from-visual-studio



  • Hi.

    ColumnOrder ist eine StringCollection, wenn ich mich nicht irre. Deshalb kann man dort auch via Index zugreifen.