Frage

Ich habe mehrere .NET Windows Forms Anwendungen, die ich vorbereitet in eine umwandeln Clickonce / Smart-Client-Bereitstellungsszenario. Ich habe die isn't-this-große Tutorials lesen, aber gibt es Fallen oder „Fallstricke“, die ich bewusst sein sollten?

Es gibt mehrere kleinere Anwendungen ein- oder auszuschalten, aber die Hauptanwendung ist in C #, läuft 24/7, ist recht groß, aber ändert sich nur alle paar Wochen. Er schreibt auch in eine Protokolldatei locallly und spricht mit lokalen Hardware-Geräte.

War es hilfreich?

Lösung

Hier sind ein paar, die ich mir bewusst bin.

  1. Kann nicht auf ein Symbol auf dem Desktop platzieren. Sie können nun.

  2. Ich kann nicht für alle Benutzer installieren.

  3. Ich muß durch Reifen springen, um den Einsatz zu einem anderen Server zu verschieben. Es ist kein Problem, wenn Sie intern entwickeln, und die Benutzer auf den Server sehen können, die Sie veröffentlichen oder wenn Sie an das öffentliche Netz bereitstellen, aber es ist nicht toll, wenn Sie unabhängig zu mehreren Kundenstandorten ausrollen müssen.

  4. Da .NET 3.5 SP1 Sie nicht brauchen, um die Bereitstellung zu unterzeichnen manifestieren mehr, was es viel leichter zu bewegen Installationen auf neue Server macht.

  5. Ich kann nicht installieren Baugruppen in der GAC . Sie können Installieren von Paketen regelmäßig dieses Problem umgehen, indem die Voraussetzungen der Clickonce-Anwendung sind.

Andere Tipps

  • Wenn Updates bereitgestellt werden, wird die integrierte Dialog es scheint, als ob die gesamte Anwendung neu heruntergeladen wird. In der Tat angezeigt nur die geändertenen DLLs heruntergeladen werden, und die Fortschrittsbalken sind irreführend / falsch. vergeuden Zeit mit dem Versuch nicht, um herauszufinden, warum alle Baugruppen werden wieder eingesetzt nur um zu entdecken, dass sie eigentlich nicht. Nicht, dass ich tat, oder so etwas.
  • Wenn das Zertifikat, das Sie verwendete, um das ursprüngliche Bereitstellungsmanifest zu unterzeichnen abläuft und Sie einen neuen ausgestellt, sind Sie in einer Welt des Schmerzes (Clients alle deinstallieren benötigen und neu installieren). Details sind an der Mündung Pferd.

Die meisten Probleme wurden angesprochen, aber einige Leute erwähnt nicht eine Desktop-Verknüpfung erstellen zu können. In der Tat, Sie < em> können eine Desktop-Verknüpfung mit Visual Studio 2008 SP1 erstellen.

Auch wenn Sie nicht die neueste Version von Visual Studio verwenden, können Sie immer Code schreiben Sie eine Verknüpfung zu der installierten Startmenü Verknüpfung erstellen.

Wir hatten eine App wir als Clickonce-App bereitstellen würden. Wir mussten die Benutzer in die Lage sein, einige Einstellungen in der Installation zu ändern (wie der Bereitstellungspfad - IT will die Dateien von ihrer Netzwerkfreigabe dienen, nicht zum Zeitpunkt der Erstellung bekannt). Wenn Sie eine der Dateien in der Bereitstellung ändern, müssen Sie alle Hashes neu zu berechnen und neu signieren alles. Also, wenn diese Lösung intern ist, können Sie keine Probleme haben, um eine Unterzeichnung cert vorbei, aber wenn dies für die Kunden ist, müssen Sie Architekt, der eine ausgefallene Lösung dieses Problem zu umgehen.

ich Grollen von irgendwo in den Eingeweiden des Internets gehört habe, dass eine zukünftige Version von Clickonce einige dieser Kopfschmerzen entfernen.

Sie können nicht still deinstallieren Clickonce bereitgestellte Anwendungen. Auch ich denke, es ist unmöglich, Parameter an die Startverknüpfung hinzuzufügen.

Eine der Gefahren mit Clickonce ist die Tatsache, dass Sie nicht auf die installieren können GAC . Dies ist ein Problem, wenn Sie mehrere Anwendungen installieren möchten, die DLL-Dateien zu teilen. Jede Anwendung wird eine lokale Kopie der DLL-Dateien benötigen. Außerdem sind mehrere Benutzer installiert werden. Siehe der Liste Vergleich Fenster Installer zu Clickonce .

Falls jemand dazu in der Suche bezieht, haben wir viele Kunden besorgt über den Mangel an Sicherheit ‚zu verteilen‘ ihre Anwendung gefunden. Der Antrag muss in einem öffentlichen Ort zur Verfügung - ohne Authentifizierung - für sie in der Lage sein, nach Updates zu suchen. Die einzige Ausnahme ist, wenn Sie Windows NT-Authentifizierung haben. Ich denke, Absichern von Clickonce-Anwendungen erklärt, was ich meine.

Desktop-Symbole sind ziemlich trivial über Code zu tun, und wie bereits erwähnt, mit 3.5 SP1 , gebacken in. - das so ist kein Thema mehr

Es gibt immer noch einen nicht fixiertes Fehler mit der XMLSerializer - es ist nicht richtig in einigen Fällen zum Einsatz gelangt. Eine einfache Lösung wäre es, diese Datei manuell auf den Einsatz hinzuzufügen. PITA, aber es ist einfach genug ... Es kann schockierend sein, wenn Ihr Einsatz plötzlich obwohl nicht ...

Es gibt eine ganze Menge Dinge, die Sie nicht mit Clickonce-Anwendungen zu tun, wie eine Verknüpfung auf den Desktop des Benutzers installieren oder haben keine Sayso in dem die Anwendung installiert wird. Für manche Menschen sind diese dealbreakers.

Auch ist es schon eine Weile her, seit ich es benutzt, aber es gibt eine besondere Art und Weise Sie, um herauszufinden, und zeigen Sie die Clickonce-Version verwenden können / Build-Nummer, die sich aus der Anwendung der Version getrennt ist / Build-Nummer. Sie haben einen try / catch zu tun, und wenn die Clickonce-Version / Build-Nummer eine Ausnahme wirft dann die Anwendung nicht als Clickonce-implementierte Anwendung ausgeführt wird (das heißt, es wird als regelmäßig kompilierten Anwendung oder von Visual Studio ausgeführt wird).

Für eine Anwendung, die einfach ist (das heißt, nicht Microsoft Word , sondern ein quick-and-dirty-Anwendung etwas) zu tun und eine Menge regelmäßigen Einsatz braucht, ist Clickonce groß. Aber man ziemlich schnell gegen die Wand von „oh, das kann nicht von Clickonce getan werden, wählen Sie bitte MSI oder etwas anderes).

werden Sie haben weniger Systemzugriff als Ihre normale .NET-Anwendung.

Das ist, weil Sie eine niedrigere Vertrauensebene erhalten werden. Mehr dazu in .NET Framework-Entwicklerhandbuch: Clickonce-Bereitstellung und Sicherheit .

Mein größtes Problem damit war, dass es nicht möglich ist, Abschnitte der Konfigurationsdatei mit dem Maschinenschlüssel zu verschlüsseln, weil Sie auf diese Taste, um den Zugang nicht haben (wenn man darüber nachdenkt, macht es Sinn, den Schlüssel zu schützen) .

Ich wusste nicht, dass SP1 erlaubt Ihnen das Desktop-Symbol zu erstellen.
Hier ist, wie wir es getan (jetzt als „harter Weg“ bekannt):

try
{
    string company = string.Empty;
    string product = string.Empty;
    if (Attribute.IsDefined(asm, typeof(AssemblyCompanyAttribute)))
    {
        AssemblyCompanyAttribute asCompany = (AssemblyCompanyAttribute)Attribute.GetCustomAttribute(asm, typeof(AssemblyCompanyAttribute));
        company = asCompany.Company;
    }
    if (Attribute.IsDefined(asm, typeof(AssemblyProductAttribute)))
    {
        AssemblyProductAttribute asProduct = (AssemblyProductAttribute)Attribute.GetCustomAttribute(asm, typeof(AssemblyProductAttribute));
        product = asProduct.Product;
    }
    if (!string.IsNullOrEmpty(company) && !string.IsNullOrEmpty(product))
    {
        string desktopPath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.Desktop),
            product + ".appref-ms");
        string shortcutPath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.Programs),
            Path.Combine(company, product + ".appref-ms"));
        File.Copy(shortcutPath, desktopPath, true);
    }
}
catch 
{
    // Shortcut could not be created
}

Sie können nicht installieren, wenn der Client hinter einem Proxy, der Authentifizierung erfordert.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top