2009-05-27 7 views
3

Wir verwenden derzeit Visual Studio zum Erstellen unserer ClickOnce-Bereitstellungspakete, aber wir möchten "Anwendungsdateien" umbenennen, da der von uns verwendete Webserver dies tut nicht unterstützen Räume.So benennen Sie den Ordner "Anwendungsdateien" in einer ClickOnce-Bereitstellung automatisch um

Wir haben festgestellt, dass wir den Pfad, auf den verwiesen wird, ändern können, wenn wir direkt in die .application-Datei gehen, und wir können den Ordner auch manuell umbenennen.

Kennt jemand eine Möglichkeit, dies zu automatisieren, ob es MageUI oder ein anderes Dienstprogramm verwendet? Es ist verlockend, ein Batch-Skript zusammenzustellen, das die Änderungen für uns vornimmt. Die Implementierung verwendet auch unsignierte Dateien, da wir uns nicht um ein Zertifikat kümmern müssen (es ist nur eine interne App)

+0

Wie hast du das funktioniert? Als ich den Ordner umbenannte (es gibt einen Fehler mit App Engine und Leerzeichen!), Erhalte ich folgende Fehler: + Die Manifest-XML-Signatur ist nicht gültig. + Die digitale Signatur des Objekts wurde nicht überprüft. –

+0

Nicht sicher, ob Sie App Engine verwenden (da Sie erwähnt, keine Unterstützung von Leerzeichen), aber ich habe meine Arbeit mit den Räumen in Takt von URLEncoding die Handler-URL: - URL:/app/Anwendung% 20Files static_dir: app/Anwendungsdateien –

+0

Sie müssen die Signaturgenerierung für die Manifestdateien deaktivieren. Du hast Recht, dass ich AppEngine nutze, und das Hinzufügen weiterer Handler-URLs scheint zu funktionieren. http://code.google.com/p/googleappengine/issues/detail?id=2525 enthält weitere Details –

Antwort

2

Da niemand die Antwort darauf zu wissen scheint, habe ich einen Weg gefunden, es zu tun mich selber. Ich habe ein Powershell-Skript erstellt. Beachten Sie, dass dies nur für nicht signierte Manifeste funktioniert.

gci -Recurse -include *.application | ForEach-Object { [System.IO.File]::WriteAllLines($_.FullName, [System.IO.File]::ReadAllText($_.FullName).Replace("Application Files", "ApplicationFiles")) } 
gci -recurse | Where {$_.psIsContainer -eq $true} | Where {$_.Name -eq "Application Files"} | ForEach-Object { $_.MoveTo($_.FullName.Replace("Application Files", "ApplicationFiles")) } 

Mein Powershell nicht erstaunlich ist, so dass es ein besserer Weg, es zu tun sein kann, aber das war, was ich mit

kam
0

Versuchen Sie zunächst, dies manuell.

Veröffentlichen Sie die Anwendung in einem Ordner (legen Sie den Veröffentlichungsspeicherort auf C: \ publish und den Installations-URL korrekt fest, z. B. http://myserver/myapp/).

Dann gehen Sie und benennen Sie Application Files zu ApplicationFiles in C: \ publish.

Wechseln Sie zum Ordner C: \ publish \ ApplicationFiles \ yourapp_a_b_c_d \ und löschen Sie Ihre Anwendung. (Vertrau mir, wenn du das nicht tust, wird Mageui ausschlachten, wenn du die Dateien wieder hinzufügst).

Führen Sie MageUI (es ist in c: \ Programme \ Microsoft sdks \ Windows \ v7.0a \ bin oder v6.0a \ bin, je nachdem, welche Version von VS Sie ausführen).

Klicken Sie in MageUI auf Öffnen, suchen Sie nach c: \ publish \ ApplicationFiles \ yourapp_a_b_c_d \ yourapp.exe.manifest, und öffnen Sie es (wobei a_b_c_d für Ihre Version steht und yourapp der Name Ihrer Anwendung ist).

Sie sollten den Namen und Zeug sehen. Klicke auf Dateien. Stellen Sie sicher, dass beim Hinzufügen die Bereitstellungserweiterung ... aktiviert ist, und klicken Sie dann auf Auffüllen (obwohl Sie darüber nachdenken sollten, sollten alle diese Erweiterung haben, es sei denn, Sie haben sie in VS geändert). Dadurch werden alle Dateien im Ordner zum Anwendungsmanifest hinzugefügt/

Speichern und unterschreiben Sie das Anwendungsmanifest.

Klicken Sie dann erneut auf Öffnen, öffnen Sie c: \ publish \ yourapp.application.

Klicken Sie auf "Anwendungsreferenz". Klicken Sie rechts auf Manifest auswählen. Navigieren Sie zu der Datei, die Sie gerade bearbeitet haben (C: \ publish \ ApplicationFiles \ yourapp_a_b_c_d \ yourapp.exe.manifest). Dadurch wird das Bereitstellungsmanifest aktualisiert, sodass es die Liste der Dateien im richtigen Anwendungsmanifest finden kann. Speichern und signieren Sie das Bereitstellungsmanifest (yourapp.application).

Kopieren Sie die Ordner auf den Webserver, es sollte funktionieren.

Nun, wenn das für Sie funktioniert, können Sie den Mageui-Kram durch Mage-Befehle ersetzen, und wahrscheinlich ein paar einfache Scripts machen, um die Dateien in den neuen Ordner zu kopieren oder die "Anwendungsdateien" in "ApplicationFiles" umzubenennen.

Ich kann die Mage-Befehle für Sie bereitstellen, wenn Sie sie brauchen.

Verwandte Themen