2009-05-07 12 views

Antwort

10

Answer from MSDN von User Heath8041:

Sneaky Way

Hier ein EULA angezeigt für Ihre Clickonce-Anwendung in VS2005 zu bekommen ist eine Runde über Art und Weise Ihre Clickonce-Anwendungen zu erhalten mit einer Endbenutzer-Lizenz installieren Zustimmung. Im Wesentlichen erstellen Sie eine weitervertreibbare Komponente, die im Dialogfeld "presuquisites" unter dem Veröffentlichungsfenster angezeigt wird. Auf diese Weise können alle Ihre Apps die gleiche Vereinbarung verwenden, wenn Sie möchten. Es ist sehr einfach, Sie müssen nur drei Dateien ("eula.txt", "product.xml" und "package.xml") und zwei Ordner in diesem Fall erstellen ("EULApackage" und "en"). Ich habe alles hier unten dokumentiert, wie ich es eingerichtet habe. es funktioniert super. Die einzige Sache, die Sie ändern müssen, ist der Name der Komponente und natürlich benötigen Sie Ihre eigene Endbenutzerlizenzvereinbarung, die als eula.txt gespeichert wird. Die Komponente muss in den folgenden Pfad eingefügt werden: C: \ Programme \ Microsoft Visual Studio 8 \ SDK \ v2.0 \ BootStrapper \ Pakete In diesem Ordner sollten Sie einige Unterordner für andere verteilbare Komponenten sehen. Erstellen Sie zuerst ein neues Unterverzeichnis für Ihre Komponente. Ich habe mein EULA-Paket aufgerufen. In diesem neuen Ordner benötigen Sie Folgendes. -A Datei namens product.xml und einen Unterordner namens „en“ (für Englisch) Sie verschiedene Dinge mit der Datei product.xml tun können, aber hier ist die Art und Weise mein

<?xml version="1.0" encoding="utf-8" ?> 

<Product 
    xmlns="http://schemas.microsoft.com/developer/2004/01/bootstrapper" 
    ProductCode="EULA.Bootstrap.Component" 
> 
    <!-- Defines list of files to be copied on build --> 
    <PackageFiles> 
    <PackageFile Name="en/eula.txt"/> 
    </PackageFiles> 


    <Commands> 
    <Command PackageFile="en/eula.txt" 
     Arguments='' > 

     <ExitCodes> 
     <DefaultExitCode Result="Fail" FormatMessageFromSystem="true" String="GeneralFailure" /> 
     </ExitCodes> 

    </Command> 
    </Commands> 
</Product> 

* in aussieht Bei der Datei eula.txt handelt es sich um die Textdatei, die meine Lizenzvereinbarung war. Beachten Sie, dass es keine RTF-Datei ist. Rtf zeigt mit dieser Methode keine Eigenschaften an.

Jetzt in meinem „en“ Unterordner habe ich die eula.txt Datei und eine andere XML-Datei package.xml genannt, wieder kann diese XML-Datei, die alle Arten von Sachen

heren der Inhalt meiner Version zu tun, verwendet werden, *

<?xml version="1.0" encoding="utf-8" ?> 

<Package 
    xmlns="http://schemas.microsoft.com/developer/2004/01/bootstrapper" 
    Name="DisplayName" 
    Culture="Culture" 
    LicenseAgreement="eula.txt"> 

    <PackageFiles> 
     <PackageFile Name="eula.txt"/> 
    </PackageFiles> 

    <!-- Defines a localizable string table for error messages and url's --> 
    <Strings> 
    <String Name="DisplayName">Texas Instruments End User License Agreement</String> 
    <String Name="Culture">en</String> 

    <String Name="CancelFailure">User Failed to Accept Texas Instruments End User License Agreement.</String> 
    <String Name="GeneralFailure">A fatal error occurred during the installation of ELUA Component Execution</String> 
    <String Name="AdminRequired">You do not have the permissions required to install this application. Please contact your administrator.</String> 
    </Strings>  
</Package> 

Hinweis: was auch immer Sie im Displayfeld setzen, was Ihre Benutzer sehen, wenn er mit dem eula Text konfrontiert ist, wenn Sie all dies zusammen korrekt und in den richtigen Ordnern abgelegt haben, das nächste Mal starte VS2005 und gehe zu deinem Veröffentlichungs-Tab -> Voraussetzungen solltest du das DisplayName-Feld sehen . Überprüfen Sie dies als Voraussetzung für Ihre App. Wenn der Benutzer auf install in der Datei publish.htm klickt, wird der Benutzer die Inhalte Ihrer eula.txt-Datei in einem Standard-Dialogfeld für die Lizenzannahme anzeigen. Wenn das Choose accept your stuff installiert, wenn es ablehnt, dann geht es ziemlich gut und nichts ist auf ihren Systemen installiert. Wenn Sie Schlamassel die Formatierung für eine der beiden Dateien oder wenn Sie die „en“ sub-Ordner auslassen, dann wird die Komponente erscheinen nicht in den Voraussetzungen Dialog (bei Veröffentlichung)

Zusätzliche Hinweise: obwohl Das funktioniert gut, es ist eine Runde über Methode und ihre Wege sind um die Eula, wie wenn Ihre Datei publish.htm ermöglicht es ihnen, die Anwendung direkt ausführen (ich denke, ohne Bootstrapper starten), aber wenn sie auf die Schaltfläche Installieren klicken, wird es ausgeführt . Dies hat auch den Vorteil, dass Sie nicht jedes Mal ausgeführt werden, wenn Sie ein Update für Ihre clickonce-Anwendung veröffentlichen. Sie müssen den Bootstrapper ausführen, damit die Eula angezeigt wird (indem Sie auf die Schaltfläche install auf publish.htm klicken). Ich habe diese Methode herausgefunden, indem ich einige der weiterverteilbaren Komponenten betrachtet habe, die sich bereits im Pfad C: \ Program befanden Dateien \ Microsoft Visual Studio 8 \ SDK \ v2.0 \ BootStrapper \ Pakete. Sie können in den anderen Komponenten product.xml und package.xml nachsehen, welche coolen Dinge sie damit gemacht haben. Gut Glück

+1

perfekt, ich bin Visual Studio 2008, so dass der Speicherort ist C: \ Programme \ Microsoft SDKs \ Windows \ v6.0A \ Bootstrapper \ Packages \ Ela – Coppermill

+0

Und in Windows 7 64 Bit ist der Speicherort C: \ Program Dateien (x86) \ Microsoft SDKs \ Windows \ V6.0A \ BootStrapper \ Packages \ – ForeverWintr

+1

Wenn noch jemand Schwierigkeiten hat, dies zum Laufen zu bringen, lesen Sie den gesamten Thread, auf den Shay verweist, um die vollständige Lösung zu finden. – ForeverWintr

1

Ich glaube nicht, dass es.

Wenn Sie Ihre Click-Once-App von einer Webseite bereitstellen, können Sie die Zustimmung des Benutzers vor der Installation der App akzeptieren. Der Effekt wird derselbe sein.

2

Für jeden, der versucht, dies zu tun, es funktioniert ... Ich bin mit Visual Studio 2008 und liek Coppermill sagte, die Lage ist „C: \ Programme \ Microsoft SDKs \ Windows \ v6. 0A \ Bootstrapper \ Packages \“

musste ich auch ein paar andere Dinge zu dem product.xml hinzufügen:

<?xml version="1.0" encoding="utf-8" ?> 

<Product 
    xmlns="http://schemas.microsoft.com/developer/2004/01/bootstrapper" 
    ProductCode="EULA.Bootstrap.Component" 
> 
    <!-- Defines list of files to be copied on build --> 
    <PackageFiles CopyAllPackageFiles="false"> 
    <PackageFile Name="en/Empty.exe"/> 
    </PackageFiles> 


    <Commands> 
     <Command PackageFile="en/Empty.exe" Arguments='/silent' > 
     <ExitCodes> 
    <ExitCode Value="0" Result="Success"/> 
     <DefaultExitCode Result="Fail" FormatMessageFromSystem="true" String="GeneralFailure" /> 
     </ExitCodes> 

    </Command> 
    </Commands> 
</Product> 

ich musste auch einen erstellen‚nichts‘ausführbare sonst die elcu.txt tun würde im Notizblock öffnen. Wie auch immer, viel Glück ...

+0

Ich kämpfe jetzt mit diesem Problem. Wie hast du eine do nix exe hinzugefügt? Und was meinst du damit, dass du zur product.xml hinzugefügt hast? – bluebit

+0

Ignoriere den Kommentar zum Hinzufügen ... Ich kann mich nicht erinnern, warum ich es gepostet habe. Was die ausführbare Datei "do nothing" betrifft, habe ich gerade ein einfaches C++ - Programm kompiliert, das sofort beendet wird. Ich musste dies tun, weil es die elua.txt im Editor nach dem Herunterladen als Voraussetzung öffnen würde. was ich nicht wollte. –

+0

Sie können auch eine do nothing .bat-Datei mit denselben Ergebnissen verwenden. Bsp. echo "ELUA Accepted" (in einer Bat-Datei gespeichert)

1

Wenn wir Visual Studio 2010 verwenden, dann hatten wir es in "C:\Program Files\Microsoft SDKs\Windows\v7.0A\Bootstrapper\Packages" Ordner hinzufügen. Es funktioniert jetzt.

+0

Ist es Lösung Arbeit? – Sachin

0

Ich poste dies als Antwort auf Yuki Izumis Beitrag. Statt eine Batch-Datei zu verwenden, habe ich eine leere vbs-Datei und modifiziert, um die product.xml zu

<Command PackageFile="en/empty.vbs" Arguments='' > 

Dies ist ein weiterer Weg, um zu verhindern, dass Übernehmen Sie die eula.txt von Öffnung zu klicken. Ich habe es auch mit einer rtf-Datei versucht. Das wurde richtig angezeigt (VS 2015).