Freigeben über


MSB3107 Diagnose-Code

In diesem Artikel wird der MSB3107 Fehlercode beschrieben.

Nachrichtentext

MSB3107: The specified project reference metadata for the reference 'referenced-project-name' is missing or has an invalid value:

BESCHREIBUNG

Dieser Fehler tritt auf, wenn ein Problem mit einer ProjectReference Projektdatei auftritt. Ein ProjectReference Element in MSBuild gibt eine Abhängigkeit von einem anderen Projekt in der Projektmappe an, z. B. wenn Sie auf ein Klassenbibliotheksprojekt in einem Projekt verweisen, das die Bibliothek verwendet. Im C#-Code können Sie häufig nach den using Direktiven im Projekt suchen, um zu sehen, wie sie von den im anderen Projekt definierten APIs abhängt. Das folgende Codebeispiel zeigt ein ProjectReference-Element, das auf Calculator.Library verweist.

  <ItemGroup>
	  <ProjectReference Include="..\Calculator.Library\Calculator.Library.csproj" />
  </ItemGroup>

Dies ProjectReference kann Unterelemente enthalten, die Metadaten definieren, die Details zum Verweis angeben. In der Dokumentation finden Sie die unterstützten Metadatenelemente in allgemeinen MSBuild-Projektelementen – ProjectReference.

Beschluss

Überprüfen Sie das ProjectReference in der Fehlermeldung erwähnte Element, und korrigieren Sie offensichtliche Fehler wie Rechtschreibfehler oder Tippfehler in dem Wert, auf den in der Fehlermeldung verwiesen wird, oder andere Werte, die in der ProjectReferenceFehlermeldung angegeben sind.

Wenn sich der Fehler auf eine Project Metadaten mit einem GUID-Wert bezieht, können Sie normalerweise das Project Metadatenelement und dessen Wert löschen. In früheren Versionen von MSBuild wurde ein GUID-Wert für das Project Metadatenelement erwartet, das zum Identifizieren des Projekts verwendet wird. Wenn sie vorhanden ist, muss die GUID die korrekte Projekt-GUID (aus der Lösungsdatei) sein und darf keine Syntaxfehler aufweisen. Das folgende Beispiel zeigt die richtige Syntax mit dem Metadatenelement und dem Project GUID-Wert.

  <ItemGroup>
	  <ProjectReference Include="..\Calculator.Library\Calculator.Library.csproj">
		  <Project>{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</Project>
	  </ProjectReference>
  </ItemGroup>

Sie können das ProjectReference Element auch aus der Projektdatei löschen und einen Verweis auf das Projekt erneut in der Visual Studio-IDE hinzufügen. Wenn Sie eine neue Projektreferenz in Visual Studio hinzufügen, werden die Elemente in der Projektdatei mit den aktuellsten Metadaten und Werten neu erstellt. Siehe Registerkarte 'Verweise hinzufügen oder entfernen' – Registerkarte 'Projekte'.

Überprüfen Sie das Attribut ToolsVersion. Es ist in späteren Versionen von MSBuild nicht mehr erforderlich, sodass Sie versuchen können, sie zu löschen. Falls vorhanden, sollte sie 4.0 oder höher sein.

Gilt für:

Alle Versionen von MSBuild