Laden...

MSB4018 Unerwarteter Fehler bei der GenerateDepsFile-Aufgabe

Letzter Beitrag vor einem Jahr 2 Posts 469 Views
MSB4018 Unerwarteter Fehler bei der GenerateDepsFile-Aufgabe

Hallo!

Wie sollte es anders sein, es gibt noch einige Stolpersteine ... 😃

Unerwarteter Fehler bei der Erstellung (GenerateDepsFile)

Ich habe eine .Net 5.0 Klassenbibliothek mit einem NameSpace ASoft und einer (öffentlichen) Klasse VerzeichnisDialog erstellt.

namespace ASoft
{
    public class VerzeichnisDialog
    {

Zum testen der Klassenbibliothek habe ich die Assembly (VerzeichnisDialog.dll) in einen WPF-Projekt  mit dem  NameSpace: VerzeichnisDialog eingebunden:

namespace VerzeichnisDialog
{
    public class VMVerzeichnisAuswahl : MVVM_Base
    {

auf die Eigenschaften der Klassenbibliothek greife ich über den NameSpace der Assembly (ASoft) zu:

ASoft.VerzeichnisDialog dlgVerzeichnis = new();
...
ASoft.VerzeichnisDialog.MessageBoxResult erg = dlgVerzeichnis.ShowDialog(RootVerzeichnis, SelectVerzeichnis);   // Verzeichnis-Dialog anzeigen

Wird von IntelliSense auch problemlos unterschieden.

Beim erstellen des WPF-Projektes kommt es jetzt aber zu den Fehler:

Fehler	MSB4018	Unerwarteter Fehler bei der GenerateDepsFile-Aufgabe.
System.ArgumentException: Ein Element mit dem gleichen Schlüssel wurde bereits hinzugefügt.
   bei System.ThrowHelper.ThrowArgumentException(ExceptionResource resource)
   bei System.Collections.Generic.Dictionary`2.Insert(TKey key, TValue value, Boolean add)

Ein Element mit dem gleichen Schlüssel wurde bereits hinzugefügt.

VerzeichnisDialog gibt es zwei mal. Einmal als Public Class in der Assembly und einmal als NameSpace im WPF-Projekt. Aber das sind doch vollkommen verschiedene Sachen!

Ich habe das Projekt schon bereinigt und neu erstellen lassen, aber der Fehler kommt wieder.

MessageBoxResult

Wie aus dem Code schon ersichtlich, musste ich die MessageBoxResult Aufzählung in der Klassenbibliothek neu definieren. Ich habe keinen Weg gefunden, wie ich die System.Windows.MessageBoxResult-Aufzählung in die Klassenbibliothek einbinde. In der Bibliothek gibt es im System.Windows - NameSpace nur die weiteren NameSpace Input und Markup.

Das liegt wahrscheinlich daran, dass unter den eingebundenen FrameWorks das Microsoft.Windows.Desktop.App FrameWork fehlt?

Könnt ihr mir dazu Hinweise geben?

Sommerlich heiße Grüße!

Die erste Aufgabe konnte ich selbst lösen.

Der MSB4018 Fehler

Das ist ein Konflikt zwischen dem Dateinamen der Projekt-Datei und dem Dateinamen der Assembly-Datei.

Sie dürfen nicht gleich sein! (Dies ist vollkommen unabhängig vom NameSpace und Klassennamen.)

Beide betreffen Dateinamen und Verzeichnisnamen im Projekt und im Ausgabeverzeichnis ... dies kann VS wahrscheinlich  nicht unterscheiden.

Die Lösung ist also den Dateinamen der Projekt-Datei umzubenennen. An den NameSpace und Klassennamen muss nichts verändert werden.