Entwickler-Ecke
WinForms - Versionsnummer einer DLL
Arthuro - Mo 12.11.07 10:21
Titel: Versionsnummer einer DLL
Guten Morgen,
Ich versuche die Versions nummer einer DLL Datei rauszukriegen, leider bekomm ich diese Fehlermeldung:
C#-Quelltext
1:
| Eine Konvertierung vom Typ "char" in "System.Reflection.Assembly" ist nicht möglich. |
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51: 52: 53: 54: 55: 56: 57: 58: 59: 60: 61: 62: 63: 64: 65: 66: 67: 68: 69: 70: 71: 72: 73: 74: 75: 76: 77: 78:
| using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; using System.IO; using System.Diagnostics; using System.Collections; using System.Reflection; using System.Runtime.CompilerServices; namespace DateiVersionDLL { public partial class Form1 : Form { FolderBrowserDialog dlgFileOpen = new FolderBrowserDialog();
public Form1() { InitializeComponent(); }
private void öffnenToolStripMenuItem_Click(object sender, EventArgs e) { dlgFileOpen.Description = "Öffnen eines Verzeichnissses"; dlgFileOpen.ShowDialog();
try { string[] arDateien; string sSelectedPath = dlgFileOpen.SelectedPath.ToString(); List<string> sExtensions = new List<string>();
arDateien = Directory.GetFileSystemEntries(sSelectedPath); arDateien.Length.ToString();
foreach (string s_arDateien in arDateien) { if (Path.GetExtension(s_arDateien) == ".dll") { sExtensions.Add(s_arDateien); } }
foreach (string s_filename in sExtensions) { BuildList(s_filename); } }
catch(Exception ex) { Trace.WriteLine(ex.Message); } }
int BuildList(string s_filename) { listView1.BeginUpdate(); foreach (Assembly asm_filename in s_filename) <-- hier tritt der fehler auf { AssemblyName asmName = asm_filename.GetName(); ListViewItem newItem = new ListViewItem(asmName.Name); newItem.SubItems.Add(asmName.Version.ToString());
} listView1.Sort(); listView1.EndUpdate();
return 0; }
} } |
Christian S. - Mo 12.11.07 10:25
Hallo!
foreach geht die Elemente einer Aufzählung (also Array, Liste, ...) usw. durch. Wie kommst Du auf die Idee, ein String bestände aus Assemblies? :gruebel:
Ich würde Dir dringend zu ein paar Grundlagen raten:
http://www.galileocomputing.de/openbook/csharp/
Grüße
Christian
Arthuro - Mo 12.11.07 10:34
Hmmm an den Grundlagen liegt es sicherlich nicht, ich hab einfach mal was ausprobiert. Den ich hab nirgends was darüber gefunden wie man von .dll Datein die Versionsnummer rauskriegt. Das würde mich ein schritt weiter bringen wenn ich weiß wie es geht.
Gruß Arthuro
Christian S. - Di 13.11.07 00:18
Arthuro hat folgendes geschrieben: |
| Hmmm an den Grundlagen liegt es sicherlich nicht, ich hab einfach mal was ausprobiert. |
Wenn die Funktionsweise einer foreach-Schleife nicht verstanden ist, fehlt es an Grundlagen.
Arthuro hat folgendes geschrieben: |
| Den ich hab nirgends was darüber gefunden wie man von .dll Datein die Versionsnummer rauskriegt. Das würde mich ein schritt weiter bringen wenn ich weiß wie es geht. |
Schau Dir einfach mal die Konstruktoren der Assembly-Klasse an. Da dürfte auch einer bei sein, der einen Dateinamen annimmt.
Arthuro - Di 13.11.07 10:53
Titel: Speichern von Werten einer DLL mit Listview
Guten Tag,
Ich hab ein kleines Problem, wenn ich bei meinem ToolStrip auf Speichern klicke erhalte ich nur den Dateinamen nicht die anderen beiden werte wie Dateiversion und Datum.
Das ganze sieht so aus Dateiname.dll 1.2.4 29.05.07
Ich kriege bei meinem Programm aber nur den Dateinamen raus wenn ich das in ein Textdokument speichern möchte.
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51: 52: 53: 54: 55: 56: 57: 58: 59: 60: 61: 62: 63: 64: 65: 66: 67: 68: 69: 70: 71: 72: 73: 74: 75: 76: 77: 78: 79: 80: 81: 82: 83: 84: 85: 86: 87: 88: 89: 90: 91: 92: 93: 94: 95: 96: 97: 98: 99: 100: 101: 102: 103: 104: 105: 106: 107: 108: 109: 110: 111:
| using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; using System.IO; using System.Diagnostics; using System.Collections; using System.Reflection; using System.Runtime.CompilerServices;
namespace DateiVersionDLL { public partial class Form1 : Form { FolderBrowserDialog dlgFileOpen = new FolderBrowserDialog();
public Form1() { InitializeComponent(); }
private void öffnenToolStripMenuItem_Click(object sender, EventArgs e) { dlgFileOpen.Description = "Öffnen eines Verzeichnissses"; dlgFileOpen.ShowDialog();
try { string[] arDateien; string sSelectedPath = dlgFileOpen.SelectedPath.ToString(); List<string> sExtensions = new List<string>();
arDateien = Directory.GetFileSystemEntries(sSelectedPath); arDateien.Length.ToString();
foreach (string s_arDateien in arDateien) { if (Path.GetExtension(s_arDateien) == ".dll") { sExtensions.Add(s_arDateien); } }
foreach (string s_filename in sExtensions) { BuildList(s_filename); } }
catch(Exception ex) { Trace.WriteLine(ex.Message); } }
int BuildList(string s_filename) { FileVersionInfo VersionsInfo = FileVersionInfo.GetVersionInfo(s_filename); string DateiVersion = VersionsInfo.FileVersion.ToString(); string DateiName = VersionsInfo.OriginalFilename.ToString(); DateTime time = File.GetLastWriteTimeUtc(s_filename);
ListViewItem liste = null; liste = listView1.Items.Add(s_filename); liste.SubItems.Add(DateiVersion); liste.SubItems.Add(time.ToString());
return 0; }
private void speichernUnterToolStripMenuItem_Click(object sender, EventArgs e) { SaveFileDialog dlgSpeichern = new SaveFileDialog(); dlgSpeichern.Filter = "Textdatei | *.txt"; if (dlgSpeichern.ShowDialog() == DialogResult.OK) { foreach (ListViewItem item in listView1.Items) { string listname = item.Text.ToString(); File.AppendAllText(dlgSpeichern.FileName, item.Text.ToString() + ";" + item.SubItems[0].Text.ToString() + ";" + item.SubItems[0].Text.ToString()); } } } } } |
Arthuro - Di 13.11.07 11:54
So habe ich es jetzt geschaffT:
Lösung:
C#-Quelltext
1:
| File.AppendAllText(dlgSpeichern.FileName, item.Text.ToString() + "; " + item.SubItems[1].Text.ToString() + "; " + item.SubItems[2].Text.ToString()); |
Jetzt habe ich noch eine frage wie kann ich es machen das nach jedem durchlauf der eine Zeile tiefer springt im textdokument. ?!
Gruß Arthuro
jasocul - Di 13.11.07 12:38
Hallo,
bitte erstelle für jede deiner Fragen ein separates Topic, da die Diskussion mehrerer Fragen in einem Topic für gewöhnlich für Verwirrung und Durcheinander sorgt. Daher:
*geschlossen*
Viele Grüße,
Jasocul
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!