wake-up-neo.com

HRESULT = '80004005'?

Warum wird beim Erstellen eines Setup-Projekts die folgende Fehlermeldung angezeigt?

Bei der Validierung ist ein Fehler aufgetreten. HRESULT = '80004005'

22
Martin Delille

Dieser Fehler hängt mit einem Abhängigkeitsfehler zusammen. Ich habe alle Verweise auf mein primäres Ausgabeprojekt entfernt und sie erneut hinzugefügt. Es kompiliert jetzt OK!

5
Martin Delille

Ein Projekt in der Lösung hatte ToolsVersion="4.0" (in der .csproj-Datei), änderte es in ToolsVersion="3.5" und Setup-Projekt-Builds waren in Ordnung.

21
thewpfguy

Beide Gründe, die ich gefunden habe, sind bereits in anderen Antworten enthalten, aber sie sind in getrennten Antworten und nicht vollständig erläutert. Hoffentlich kombiniert dies die Möglichkeiten und bietet eine gute Möglichkeit, jedes zu debuggen. :)

Gemeinsamer Grund

Mein Problem war kein Abhängigkeitsfehler. Dies scheint jedoch der übliche Grund zu sein. Im Grunde müssen Sie Ihre MSI -Datei überprüfen und sicherstellen, dass alle Abhängigkeiten noch gültig sind. Wahrscheinlich ist die beste Blog-Antwort, wie Sie dieses Problem leicht lösen können, wenn ein Abhängigkeitsproblem vorliegt, Beim Validieren ist ein Fehler aufgetreten. HRESULT = '80004005'.

Auszug aus dem Blog:

Befolgen Sie die nachstehenden Schritte zur Problembehandlung. 

  • Wenn sich in Ihrer Lösung mehrere Projektausgaben befinden, ermitteln Sie das Projekt, das das Problem verursacht. Sie können dies tun, indem Sie jeweils ein Projekt aus dem Setup-Projekt (S) entfernen, bis der Fehler behoben wird. 
  • Sobald das Projekt identifiziert ist, ermitteln Sie die Referenz, die das Problem möglicherweise verursacht.

    • Überprüfen Sie, ob das Projekt (A) auf ein Projekt verweist, das aus der Lösung entfernt wurde. - Entfernen Sie gegebenenfalls solche Verweise. 
    • Prüfen Sie, ob das Projekt (A) auf ein Projekt verweist, das an einen anderen physischen Ort verschoben wurde, nachdem es als Referenz hinzugefügt wurde. - Entfernen Sie solche Referenzen und fügen Sie sie hinzu. 
  • Erstellen Sie das Setup-Projekt nach dem Korrigieren der Referenz entsprechend neu, um zu sehen, ob der Fehler behoben wird.

Alternativer Grund

Mein Problem hatte jedoch mit der Versionierung von Visual Studio zu tun. Wenn also Ihre Abhängigkeiten gültig sind und Sie dieses Problem immer noch erhalten, lösen Sie dies, wenn es ein Problem mit VS2010 ist.

Grundsätzlich, wenn Sie MSBuild ausführen und diese Warnung sehen:

Die Projektdatei enthält ToolsVersion = "4.0", die von Dieser Version von MSBuild nicht unterstützt wird. Behandeln des Projekts, als hätte es ToolsVersion = "3.5"

Das Problem ist dann die Versionierung von Visual Studio. Dies bedeutet, dass ein Projekt in Visual Studio 2010 geöffnet oder erstellt und dann gespeichert oder einer vorhandenen 3.5-Lösung hinzugefügt wurde. Ich habe einfach alle Dateien in meinem Projekt nach ToolsVersion="4.0" durchsucht, die fehlerhafte .csproj-Datei gefunden, sie in einem Texteditor geöffnet und den 4.0 manuell in einen 3.5 geändert.

15
Justin Pihony

Ich bin heute auf dieses Thema gestoßen. Die Lösung in meinem Fall? Starten Sie Visual Studio 2008 neu.

4
Joseph Anderson

In meinem Fall hatte meine Lösung (VS2008) ein Projekt, das auch von einer anderen Lösung (VS2010) referenziert wurde. In der VS2010-Lösung hatte ich das Projekt auf .NET 4.0 aktualisiert. Als mir später klar wurde, dass das Projekt auch in einer anderen Lösung verwendet wurde, wurde es auf .NET 3.5 heruntergestuft. Aus irgendeinem Grund schien alles in der csproj-Datei korrekt geändert zu sein, mit Ausnahme einer Stelle, die hier erwähnt wird: Fehler im Setup-Projekt HRESULT = '80004005'

Ich weiß, dass dies bereits an anderer Stelle gelöst ist, aber ich wollte etwas Licht aus einem anderen Problemwinkel aufzeigen.

4
riper

Ich habe selbst enorme Zeit mit diesem verbracht, obwohl nichts davon funktioniert hat. Ich habe jedoch eine andere Lösung mit einem Registry-Hack gefunden. Sie müssen einen neuen DWORD-Wert (EnableOutOfProcBuild) von (0) zu HKCU\SOFTWARE\Microsoft\VisualStudio\14.0_Config\MSBuild\EnableOutOfProcBuild hinzufügen.

Hinweis : Dies ist für Visual Studio 2015 

3

Das einfache Entfernen und erneute Hinzufügen von Projektabhängigkeiten funktioniert zwar in vielen Fällen, es ist jedoch wichtig zu beachten, dass:

Die Fehlermeldung "Beim Validieren ist ein Fehler aufgetreten. HRESULT = 80004005." Tritt normalerweise auf, wenn auf ein Projekt auf das andere Projekt verwiesen wird, bei dem Nicht in die eigentliche Lösung [sic] eingefügt wird. Setup-Projekt unterstützt nur Abhängigkeitsprojekte in derselben Lösung. 1

3
David Beckman

In meinem Fall hatte ich Visual Studio 2010 zusammen mit Visual Studio 2008 installiert. Mein in Visual Studio 2008 geöffnetes Setup-Projekt gab den gleichen Fehler ab, war aber in Visual Studio 2010 in Ordnung. 

Wenn auf einen anderen Computer kopiert, der nicht über Visual Studio 2010, aber über Visual Studio 2008 verfügte, würde es kompilieren.

1
Jon

Ich habe diese Antwort aus einem anderen Post auf Stack Overflow gelesen, und das hat für mich funktioniert.

Öffnen Sie Ihre Setup-Projektdatei (.vdproj) in Notepad (oder einem anderen Texteditor). Löschen Sie diese Zeilen am Anfang der .vdproj-Datei:

"SccProjectName" = "8:"
"SccLocalPath" = "8:"
"SccAuxPath" = "8:"
"SccProvider" = "8:"

Bauen Sie erneut auf - der Fehler ist weg. Dieser Fehler hat mich nicht davon abgehalten, mein Projekt zu implementieren, aufzubauen, zu debuggen (oder irgendetwas zu machen); es hat mich nur genervt. Und es kam auch dann an, wenn ich alle Projekte so eingestellt habe, dass sie in einer aktuellen Konfiguration erstellt werden und das Setup-Projekt nicht.

0
tablaplanet

Ich weiß, dass dies eine ziemlich alte Nachricht ist, aber mein spezielles Problem und meine Lösung werden hier nicht ausdrücklich erwähnt (soweit ich das beurteilen kann - wenn ich es versäumt habe, entschuldige ich mich).

Ich hatte das gleiche Problem. Es würde mein Projekt nicht kompilieren, hatte aber keine Fehler. Alles was ich sehen konnte war "Build Failed". Ich öffnete die "Output" -Datei (Klicken Sie auf "Ansicht" -> "Ausgabe" im Menü) und mir wurde genau mitgeteilt, welche Referenz (in meinem Fall eine .dll) das Problem verursacht hat. 

Ich habe die Referenz gelöscht und neu erstellt, und der Referenzname wurde von Microsoft.Office.Core (die anscheinend nur eine 32-Bit-Version war) in "OFFICE" geändert. Dann hat alles super geklappt. - Notieren Sie sich den Pfad zu der Datei, auf die Sie verweisen, im Eigenschaftsfenster. Mein neuer Pfad war genau derselbe, aber der Referenzname hat sich trotzdem geändert. ..

Die Moral der Geschichte ist also: Wenn Sie keine Fehler erhalten und Ihr Build fehlschlägt, überprüfen Sie die Registerkarte "Ausgabe", und es kann hilfreich sein.

0
Dan B

Ich habe Visual Studio 2010 installiert und die Lösungen auf diese Version konvertiert. Aufgrund von Leistungsproblemen habe ich meine Lösungen wieder auf Visual Studio 2008 umgestellt. Alles war jetzt besser, aber ich habe einen Fehler erhalten, als ich das Setup-Projekt kompilieren wollte. Mir wurde klar, dass ich ein Visual Studio 2010-Testprojekt in meiner Lösung hatte. Alles, was ich tun musste, war, das Testprojekt zu deinstallieren und das Setup-Projekt erneut zu erstellen.

Zusammenfassung: Entladen Sie alle Visual Studio 2010-Projekte in der Lösung.

Ich hoffe, es hilft.