Autor Beitrag
Arthuro
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 23



BeitragVerfasst: Mo 12.11.07 10:21 
Guten Morgen,

Ich versuche die Versions nummer einer DLL Datei rauszukriegen, leider bekomm ich diese Fehlermeldung:
ausblenden C#-Quelltext
1:
Eine Konvertierung vom Typ "char" in "System.Reflection.Assembly" ist nicht möglich.					


ausblenden volle Höhe 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.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20451
Erhaltene Danke: 2264

Win 10
C# (VS 2019)
BeitragVerfasst: 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: www.galileocomputing.de/openbook/csharp/

Grüße
Christian

_________________
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
Arthuro Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 23



BeitragVerfasst: 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.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20451
Erhaltene Danke: 2264

Win 10
C# (VS 2019)
BeitragVerfasst: Di 13.11.07 00:18 
user profile iconArthuro 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.

user profile iconArthuro 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.

_________________
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
Arthuro Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 23



BeitragVerfasst: 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.

ausblenden volle Höhe 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
{
    /// <summary>
    /// 
    /// </summary>
    public partial class Form1 : Form
    {
        FolderBrowserDialog dlgFileOpen = new FolderBrowserDialog();

        /// <summary>
        /// 
        /// </summary>
        public Form1()
        {
            InitializeComponent();
        }

        /// <summary>
        /// Wird das Öffnen Toolstrip betätigt so wird
        /// </summary>
        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);
            }            
        }

        /// <summary>
        /// Die Funktion BuildList die den Parameter s_filename annimmt
        /// </summary>
        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;
        }

        /// <summary>
        /// 
        /// </summary>
        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());
                }
       
                //StreamWriter swWriteContext = File.CreateText(Application.StartupPath + "\\DLL-Version1.txt");
                //swWriteContext.WriteLine(listname);
                //swWriteContext.WriteLine(as);
                //swWriteContext.WriteLine(as);
                
                //Den Dateizugriff beenden 
                //swWriteContext.Close();
            }
        }       
    }
}
Arthuro Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 23



BeitragVerfasst: Di 13.11.07 11:54 
So habe ich es jetzt geschaffT:

Lösung:
ausblenden 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
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 6395
Erhaltene Danke: 149

Windows 7 + Windows 10
Sydney Prof + CE
BeitragVerfasst: 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
Dieses Thema ist gesperrt, Du kannst keine Beiträge editieren oder beantworten.

Das Thema wurde von einem Team-Mitglied geschlossen. Wenn du mit der Schließung des Themas nicht einverstanden bist, kontaktiere bitte das Team.