Laden...

Click Once mit mehreren Projekten in einer Projektmappe: Update führt zu Fehlermeldung

Erstellt von oehrle vor 10 Jahren Letzter Beitrag vor 10 Jahren 2.657 Views
O
oehrle Themenstarter:in
461 Beiträge seit 2009
vor 10 Jahren
Click Once mit mehreren Projekten in einer Projektmappe: Update führt zu Fehlermeldung

Hallo, ich hatte bisher mein Projekt in der Firma über Clickonce bereitgestellt. Hat auch supi funktioniert, cool ist die sache mit dem Update. Jetzt habe ich meine Projekt erweitert. Ich habe zusätzlich zwei Projekte integriert. Also nun sind drei Projekte drin. Das erste ist die Hauptanwendung, aus der zweiten Nutze ich nur Methoden für Darstellung (generiere eine DLL daraus) und das dritte Projekt nehme ich für Datenvisualisierung, was ich auch für andere Anwendungen verwenden möchte. Jetzt habe ich das Problem mit der Veröffentlichung, die nicht mehr klappt. Ich bekomme die Meldung:

Fehlermeldung:
... the manifest may not be valid or the file could not be opened.

Habe mal nachgeforscht, und nur soweit Infos gefunden, das man für ClickOnce auch mehrere Projekte in einer Projektmappe haben darf, aber man muss jedes Projekt separat veröffentlichen. Nun ist die Frage, ich möchte auch unserem Fileserver nicht Kraut und Rüben wachsen lassen, und alles in das gleiche Verzeichnis wie zuvor haben. Geht das? Muss ich noch etwas anderes beachten? hat jemand schon so etwas gemacht? Bei vielen Projekten in der Projektmappe kann man wohl auch eine Makro erstellen?
Wer hat einen Plan?
Oder wäre es besser aus den beiden neuen Projekten je eine DLL zu erstellen und diese dann in das Hauptprojekt einzubinden?

849 Beiträge seit 2006
vor 10 Jahren

Hi, ist die dritte Komponente ausführbar?

Ich habe seit Jahren eine ClickOnce mit 7 Projecten (eine exe, 6 dlls) ohne Probleme am laufen. Und da muss man auch nichts einzeln deployen.

O
oehrle Themenstarter:in
461 Beiträge seit 2009
vor 10 Jahren

Hallo unconnected, ich habe aus den beiden zusätzlich eingebundenen Projekten DLL's erstellt. Das funktioniert. Die beiden DLL's werden auch erstellt und sind im Hauptprojekt eingebunden, werden auch in das Verzeichnis der Bereitstellung abgelegt, als xxx.Deploy.DLL oder so.
Aber ich kann die Apllikation immer noch nicht installieren lassen. Nach ausführen der setup.exe kommt die Meldung, das Format stimme nicht. In der Fehlerdatei heißt es, das Manifest kann nicht geööfent werden oder ist nicht gültig. Ich habe aber noch festgestellt, das ich nach dem manuellen erstellen noch zwei Warnungen habe - Mindestens zwei Assemblies besitzen dieselbe Identität

  • Für mindestens zwei Dateien ist derselbe Zeilpfad ...

Kann das die Ursache sein, sind aber nur Warnungen?

1.552 Beiträge seit 2010
vor 10 Jahren

Hallo oehrle,

diesen Fehler habe ich auch einige male erhalten. Generell steht jedoch in den Fehlerdetails sehr genau was fehlt. Es kann sein, dass beim veröffentlichen etwas falsch gegangen ist, jedoch erscheint dieser Fehler auch, wenn sich der Schlüssel zum Signieren ändert.

Gruß,
Michael

Mein Blog
Meine WPF-Druckbibliothek: auf Wordpress, myCSharp

O
oehrle Themenstarter:in
461 Beiträge seit 2009
vor 10 Jahren

Und wie ist das mit dem Schlüssel (Signierung)? Die läuft bei mir im Januar 2014 ab. Das müßte doch dann gültig sein, oder? Kann ich da einen generellen erstellen lassn? Bisher hatte ich immer TEstzertifikater erstellt.
Soll ich da mal einen neuen erstellen um zu testen?

Die beiden DLL's brauchen ja keine Signierung (kann man ja auch nicht einstellen) oder muss ich dafür noch etwas zusätzliches machen?

1.552 Beiträge seit 2010
vor 10 Jahren

Was nach dem Ablaufen des Testzertifikates passiert habe ich keine Ahnung. Du könntet zum Testen, das Datum des PCs auf ein späteres Datum stellen. Da ich kein Code-Signing Zertifikat habe verzichte ich auch auf das Verwenden des Testzertifikates.

Mein Blog
Meine WPF-Druckbibliothek: auf Wordpress, myCSharp

O
oehrle Themenstarter:in
461 Beiträge seit 2009
vor 10 Jahren

Ok, nach Ablauf des Zertifikates kann kein Update mehr stattfinden.
Man muss ein neues erstellen. Ich glaube das Problem gefunden zu haben. Meine Architektur war im vorigen Update auf x64 gestanden, hatte jetzt aber wieser x86 eingestellt, somit wahrscheinlich der Formatfehler. Habs wieder auf x64 gestellt und Updatefenster kommt. Jetzt muss ich morgen erst mal checken, ob die Rechner in der Firma das verkraften, das sind WinXP - 32 Bit - Rechner, meiner ist Win7 - 64 Bit. Bin schon gespannt.
Hat von euch schon jemand eine Zertifikat bei einer Zertifikatsstelle erstellen lassen? Was kostet so etwas?

1.552 Beiträge seit 2010
vor 10 Jahren

das sind WinXP - 32 Bit - Rechner, meiner ist Win7 - 64 Bit. Dann könnstest du die Architektur auf AnyCPU einstellen, dann entscheidet der PC ob dein Programm auf 32Bit oder 64Bit läuft.

Zertifikatsstelle erstellen lassen? Was kostet so etwas?

Noch nicht, aber ich habe mich informiert. Das kostet je nach Anbieter ein par Hundert Euro jährlich.

Mein Blog
Meine WPF-Druckbibliothek: auf Wordpress, myCSharp

O
oehrle Themenstarter:in
461 Beiträge seit 2009
vor 10 Jahren

Über die Einstellung "AnyCPU" erreiche ich dann, das die Applikation für 32- oder 64-Bit Architektur erstellt wird und bei der Installation entscheidet das System, welche Dinge installiert werden. Werden dann da verschiedene FIles generiert (also doppelt soviele, oder wird das im Code wie mit #define gekennzeichnet, was für 32- oder 64-Bit verwendet werden darf)?
Brauche ich mir da keine SOrgen zu machen, das da irgend ertwas nicht richtig funktionieren würde (Addition, Subtraktion usw.)?

1.552 Beiträge seit 2010
vor 10 Jahren

Nein, es werden keine Dateien doppelt generiert. Der JIT entscheidet beim Programmstart ob dein Programm als 32Bit oder 64Bit Prozess gestartet wird. Dies hängt dann davon ab, welche CPU und Betriebssystemarchitektur du hast. Probleme hatte ich bisher keine, es sei denn du benutzt 3rd Party Assemblies welche in x86 kompiliert wurden, diese funktionieren dann nicht, und somit muss dein Programm auch x86 sein.

Mein Blog
Meine WPF-Druckbibliothek: auf Wordpress, myCSharp

O
oehrle Themenstarter:in
461 Beiträge seit 2009
vor 10 Jahren

Hi, mein Problem ist noch nicht behoben. ICh habe noch Problrme. Die Hauptanwendung und die beiden DLL's werden veröffentlicht. BEim installieren erhalte ich die Meldung :> Fehlermeldung:

Applicatiion is improperly formatted

Ich habe jetzt bewußt bei den DLL-Projekten die Architektur x86 eingestellt, beim Hauptprojekt auch. Habe unter Konfigurationrn : "Alle Konfigurationen" und bei Plattform "Aktiv x86" eingestellt.

Ich kompiliere aber auf einem Win7 - 64 Bit. Installieren kann ich eben nicht, da kommt der Fehler, im Log-FIle heißt es eben.> Fehlermeldung:

the manifest may not be valid or the file could not be opened.

HAtte aber zuvor mal alles auf "Any CPU" stehen, dann kompileirt und probiert zu installieren. GIng auch nicht. Kann es ein PRoblem sein, weil ich eine vorige VErsion überschreiben möchte?
Hat da jemand eine Idee, oder wie bekomme ich genauere Fehleranlysen?

1.552 Beiträge seit 2010
vor 10 Jahren

Könntest du mal die gesamte Install-Log-File anhängen?

Mein Blog
Meine WPF-Druckbibliothek: auf Wordpress, myCSharp

O
oehrle Themenstarter:in
461 Beiträge seit 2009
vor 10 Jahren

Hi Muro, habe das Problem gefunden. Von meinem "Ur-Projekt" war die "*.exe" zweimal in den Anwendungsdateien vorhanden. Kaum hatte ich die erste ausgesschlossen hat es funktioniert. Dann habe ich getestet, damit es auf 32- und 64-Bitsystemen läuft und per "ClickOnce" funktioniert. Das hat dann geklappt. Allerdings konnte ich bei den Maschinen die neue Version nicht automatisch updaten lassen, da kam dann eine Fehlermeldung. Hängt das dann eben damit zusammen, weil sich die Architektur zur vorigen Version geändert hat? Wie kann ich sowas am besten machen, wenn mir so ein Fehler in einer neuen Version passiert, damit ich nicht an alle Maschinen händisch alles deinstallieren und neu installieren muss? Kann ich in meine neue Version eine Deinstallation einbauen, falls es etwas zu deinstallieren gibt? Die neue Version könnte ich dann auf einen anderen Pfad legen, oder?

Gibt es da Beispiele für?