Hallo an das Forum,
ich bearbeite derzeit ein c# Consolen Projekt mit einer eingebundenen dll in VisualStudio 2022 in einer Projektmappe.
Wenn ich die dll ändere, lege ich das Startprojekt auf die dll fest und kompiliere die Änderung.
Anschließend muss ich die Console als Startprojekt festlegen und erneut kompilieren.
Wenn ich mehrere Startprojekte verwende, muss ich das kompilieren ebenfalls zwei mal ausführen ...
Gibt es die Möglichkeit, diesen Prozess zu vereinfachen und "mit einem Klick" diese Aufgabe zu erledigen?
Vielen Dank für die Unterstützung!
Hallo,
VS - Main Menü - Erstellen - Batch erstellen
Ist es dass was du suchst?
glandorf
Schau dir auch die "Projektabhängigkeiten" (build dependencies/project dependencies) an.
Es macht ja keinen Sinn eine DLL (Class Assembly) als Startprojekt festzulegen.
Eigentlich sollte Visual Studio deine DLL automatisch kompilieren, wenn dein Konsolenprojekt sie braucht und sich darin auch etwas geändert hat.
Und das funktioniert auch ganz sicher, immerhin hast Du nur eine DLL, große Projekte haben 100(e) DLLs in einer Projektmappe 😉 Wenn das nicht funktionieren würde, wäre beim Visual Studio Team von Microsoft die Hölle los...
Du hast also irgendein anderes Problem, z.B. falsche Projekt-Referenzen.
Ich habe z.B. schon häufiger Referenzen gesehen, die die DLL im Output-Verzeichnis direkt referenzieren.
Das funktioniert, aber für Visual Studio ist das dann nur eine x-beliebige DLL ohne jede Projekt-Zugehörigkeit und kompiliert sie natürlich auch nicht automatisch.
Aber abgesehen davon:
Du kannst auch einen Rechtsklick auf jedes Projekt oder die Projektmappe machen und dort jedes Projekt oder die Projektmappe direkt kompilieren.
NuGet Packages im Code auslesen
lock Alternative für async/await
Beim CleanCode zählen nicht die Regeln, sondern dass wir uns mit diesen Regeln befassen, selbst wenn wir sie nicht befolgen - hoffentlich nach reiflichen Überlegungen.
Vielen Dank für den Hinweis ==> mit einem ShortCut ist es eine deutliche Arbeitserleichterung!
Eigentlich sollte Visual Studio deine DLL automatisch kompilieren, wenn dein Konsolenprojekt sie braucht und sich darin auch etwas geändert hat.
Das funktioniert bei mit nicht ==> Console arbeitet auf Net 6.0 und die dll mit Framework 4.8.
Bisher habe ich in meinen Programmen keine weiteren Fehler entdecken können, die auf diese Kombination zurückzuführen wären ....
Sollte ich darüber noch einmal nachdenken?
Console arbeitet auf Net 6.0 und die dll mit Framework 4.8.
Das ist dein Fehler.
Das mag funktionieren, ist aber mehr Zufall, weil dahinter der gleiche Byte-Code (IL) steht, aber beides sind verschiedene Frameworks und Du hast keine Garantie, dass es auch in Zukunft noch funktioniert.
Und nein, nur weil das eine Version 4.8 und das andere Version 6 ist, ist das nicht abwärtskompatibel, wie es bisher sonst immer war.
.NET 4.8 ist die letzte Version der "alten" Welt, alles danach ist von Grund auf erneuert und nicht abwärtskompatibel.
Wenn die DLL auch in einem anderen Projekt, das .NET 4.x sein muss (z.B. nicht Abhängigkeiten, die nicht aktualisiert werden können), dann setze die DLL mit .NET Standard 2.0 um, das wird von .NET 4.x und .NET 6 unterstützt.
Abt war so freundlich, das zusammenzufassen (hätte ich von Microsoft erwartet, aber naja):
[FAQ] Das .NET Ökosystem - .NET, .NET Core, .NET Standard, NuGet und Co
Und die Versionen-Tabelle von Microsoft:
.NET Standard-Versionen
NuGet Packages im Code auslesen
lock Alternative für async/await
Beim CleanCode zählen nicht die Regeln, sondern dass wir uns mit diesen Regeln befassen, selbst wenn wir sie nicht befolgen - hoffentlich nach reiflichen Überlegungen.
Abt war so freundlich, das zusammenzufassen (hätte ich von Microsoft erwartet, aber naja):
Bin ja von der Microsoft Community 🙂
- performance is a feature -
Microsoft MVP - @Website - @AzureStuttgart - github.com/BenjaminAbt - Sustainable Code
Es ist durch den compatibility mode aber erlaubt.
Port from .NET Framework to .NET 6 - .NET Core
zumindest unter windows.
cSharp Projekte : https://github.com/jogibear9988
Hm - wusste ich nicht.
Deshalb sollte man es aber dennoch nicht so machen.
Das sollte wenn dann nur eine Not-Lösung für alle Projekte sein, für die es nicht anders geht.
Und ich bin mir ziemlich sicher, hier gibt es noch andere Optionen 😉
NuGet Packages im Code auslesen
lock Alternative für async/await
Beim CleanCode zählen nicht die Regeln, sondern dass wir uns mit diesen Regeln befassen, selbst wenn wir sie nicht befolgen - hoffentlich nach reiflichen Überlegungen.