Laden...

[VS]: Win-Form-Bibliothek anlegen

Erstellt von Frokuss vor 4 Jahren Letzter Beitrag vor 4 Jahren 1.539 Views
F
Frokuss Themenstarter:in
158 Beiträge seit 2015
vor 4 Jahren
[VS]: Win-Form-Bibliothek anlegen

Hallo Leute,

ich bin nicht wirklich mit Visual-Studio vertraut... Aktuell möchte ich eine Sammlung von verschiedenen Forms (angepasste Label, Panels, etc.) machen, bei denen ich aber keine exe haben möchte. Aber egal was ich auswähle, entweder kann ich keine using auf System.Windows.Forms machen, oder er erstellt mir eine exe.

Kann mir einer sagen, was ich dafür auswählen muss?

Gruß Frokuss

PS: oder gehört das eher zur Basis-Technologien?

4.931 Beiträge seit 2008
vor 4 Jahren

Du mußt eine Klassen-Library (Bibliothek) als Projekttyp auswählen und dort dann die passenden Assemblies als Referenzen (Verweise) hinzufügen.

3.170 Beiträge seit 2006
vor 4 Jahren

Hallo,

einfach nur eine Klassenbibliothek.
Um using System.Windows.Forms nutzen zu können, musst Du dann noch einen Verweis (Referenz) auf die System.Windows.Forms.dll erstellen.

Gruß, MarsStein

Non quia difficilia sunt, non audemus, sed quia non audemus, difficilia sunt! - Seneca

F
Frokuss Themenstarter:in
158 Beiträge seit 2015
vor 4 Jahren

Alles klar, danke euch beiden 😃

Nen bischen Trickreich war es, die Bibliothek auf dem System zu finden ^^ Bei mir lag sie in: C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework.NETFramework\v4.7.2

Die Durchsuchung des Systems hat mir aber mehrere Orte angezeigt...

Besser ist es vielleicht über ein Windows-Projekt zu gehen, dort den Objektkathalog auswählen, die System.Windows.Forms raussuchen (auswählen) und dort wird dann der absolute Pfad angezeigt.

Gruß Frokuss

4.931 Beiträge seit 2008
vor 4 Jahren

Du solltest nicht direkt die Assembly per "Durchsuchen" ("Browse") auswählen, sondern einfach aus der vorgegebenen Framework-Liste auswählen.

F
Frokuss Themenstarter:in
158 Beiträge seit 2015
vor 4 Jahren

So bin ich vorgegangen...
1.) Rechtsklick auf Abhängigkeit
2.) Verweis hinzufügen
3.) Assemblys auswählen --> da wird keins angezeigt... weder bei Framework noch bei Erweiterungen
4.) Durchsuchen auswählen...

Aber kann dann mein Problem sein, dass er mir anzeigt, dass ich NETStandard 2.0 verwendet? Installiert ist ja NETFramework\v4.7.2 ...

Gruß Frokuss

EDIT: Bei der Klassenbibliothek kann ich höchstens Version 2.1 auswählen... Bei der WIndows-Anwendung kann ich hingegen quasi alles von 2.0 bis 4.8 auswählen...

16.807 Beiträge seit 2008
vor 4 Jahren

Schau Dir bitte an, was .NET Standard ist. Absolutes Grundwissen im .NET Ökosystem 😃
https://docs.microsoft.com/de-de/dotnet/standard/net-standard

Da kannst Du natürlich keine Framework Assembly wählen.
Hier musst Du Referenzen über NuGet hinzufügen.

F
Frokuss Themenstarter:in
158 Beiträge seit 2015
vor 4 Jahren

Danke für den Link... ist jetzt aber schon mal nen großer Brocken.

Ich dachte allerdings, es sei ein Vorteil, wenn ich bestimmte Teile in verschiedenen Projekten auslagere und dann dort mit den Namespaces arbeite. Wäre ja nur sinnvoll bestimmte Elemente auch für andere Projekte verwenden zu können... Dachte ich! Aber bei dem Aufwand, den ich aktuell betreiben muss, um dort einfach ganz normale Windows Label und Panels einzubinden, ist es mir das echt nicht wert 😦
Werde denke ich nun das ganze Projekt verschieben und dann dort als seperaten Namespace eingleidern. Man kanns auch so ausdrücken... Ich bin zu blöd dafür!

Gruß Frokuss

4.931 Beiträge seit 2008
vor 4 Jahren

Es gibt extra als Vorlage (Template) "Windows Forms Control Library" (unter "Add"/"New Project" ->"Visual C#"/"Windows"/"Classic Desktop"), welches u.a. schon die Assembly "System.Windows.Forms" als Verweis enthält.

So schwer ist das nicht.

Wenn du dann dein WinForms-Hauptprojekt und die "Windows Forms Control Library" in einer Projektmappe (Solution) hast, dann kannst du auch einfach die Library als Verweis dem WinForms-Hauptprojekt hinzufügen (Add Reference -> "Reference Manager" / Projects).

PS: Ich habe nur die englische VS-Version hier, im deutschen sind die Begriffe dann entsprechend übersetzt.

F
Frokuss Themenstarter:in
158 Beiträge seit 2015
vor 4 Jahren

Danke, das war es... hatte einfach nur eine normale Bibliothek ausgewählt... Und dazu noch einen weiteren Fehler, dass meine classen teilweise nicht public waren... Jetzt geht es. Danke euch allen 😃

16.807 Beiträge seit 2008
vor 4 Jahren

hatte einfach nur eine normale Bibliothek ausgewählt...

Gibt keine "normalen Bibliotheken".
Es gibt (vereinfacht ausgedrückt):

  • Bibliotheken für .NET Framework
  • Bibliotheken für .NET Core
  • Bibliotheken für <andere spezifische Runtimes hier>
  • ... und Bibliotheken für .NET Standard, die dann in allen Runtimes genutzt werden können, die .NET Standard unterstützen.