2009-05-07 3 views

ответ

10

Answer from MSDN Пользователем Heath8041:

подлый способ получить EULA отображается для приложения ClickOnce в VS2005

Вот вокруг пути, чтобы получить ваши приложения ClickOnce для установки с лицензионным соглашение. В основном вы создаете распространяемый компонент, который можно увидеть в диалоговом окне prerequsites в окне публикации. Это позволяет получить хороший способ, чтобы все ваши приложения повторно использовали одно и то же соглашение, если хотите. Это очень просто, вам нужно только создать три файла («eula.txt», «product.xml» и «package.xml») и две папки в этом случае («EULApackage» и «en»). Я задокументировал все ниже о том, как я подставил. он отлично работает. единственное, что вам нужно изменить, - это имя компонента и, конечно же, вам понадобится лицензионное соглашение с конечным пользователем, сохраненное как eula.txt. Компонент должен быть помещен по следующему пути: C: \ Program Files \ Microsoft Visual Studio 8 \ SDK \ v2.0 \ BootStrapper \ Packages В этой папке вы должны увидеть некоторые вспомогательные папки для других распространяемых компонентов. Сначала создайте новый подкаталог для вашего компонента. Я позвонил своему EULApackage. в этой новой папке вам нужно следующее. -A файл с именем product.xml и к югу папку под названием «ан» (на английском) вы можете делать различные вещи с файлом product.xml, но вот как выглядит мое

<?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> 

* в этом Если файл eula.txt был текстовым файлом, который был моим лицензионным соглашением. Обратите внимание, что это не файл rtf. Rtf не будет корректно отображать этот метод.

Теперь в моем «собственном» вложенный я поместить файл Eula.txt и другой файл XML с именем package.xml, снова этот XML-файл может быть использован, чтобы сделать все виды материала

Heres содержимое моей версии *

<?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> 

Примечание: все, что вы положили в поле DisplayName является то, что ваш пользователь будет видеть, когда он сталкивается с EULA текстом Если у вас есть все это вместе взятые правильно и в нужных папках, в следующий раз, когда вы запустите VS2005 и перейдите на вкладку публикации -> необходимые условия, которые вы должны увидеть в поле DisplayName , Просто проверьте это как необходимое условие для приложения. , когда пользователь нажимает кнопку установки в файле publish.htm, он представит пользователю коннекты вашего файла eula.txt внутри стандартного диалогового окна принятия лицензии. если вы решите принять ваш материал, то, если они упадут, то он выйдет довольно красиво, и ничто не будет установлено на их системах. Если вы запутались форматирование для любого из двух файлов или если оставить в «собственной» подпапку то компонент не будет отображаться в диалоговом окне Предварительные требования (при публикации)

Дополнительные примечания: хотя это отлично работает, это круглый метод, и их пути вокруг eula, например, если ваш файл publish.htm позволяет им запускать приложение напрямую (я думаю, что без запуска загрузчика), но если они нажмут кнопку установки, он будет запущен , У этого также есть преимущества не запускать каждый раз, когда вы публикуете обновление для своего приложения clickonce. Они должны запустить загрузочную ленту, чтобы показать eula (нажав кнопку установки на publish.htm) Я вычислил этот метод, просмотрев некоторые другие распространяемые компоненты, которые уже были на пути C: \ Program Файлы \ Microsoft Visual Studio 8 \ SDK \ v2.0 \ BootStrapper \ Packages. Вы можете посмотреть в этих других файлах product.xml и package.xml компоненты, чтобы увидеть, какие интересные вещи они сделали с ними. Успехов

+1

perfect, I'musing Visual Studio 2008, поэтому местоположение C: \ Program Files \ Microsoft SDK \ Windows \ v6.0A \ Bootstrapper \ Packages \ Eula – Coppermill

+0

И в Windows 7 64 бит, это место C: \ Program Файлы (x86) \ Microsoft SDK \ Windows \ V6.0A \ BootStrapper \ Packages \ – ForeverWintr

+1

Если кто-то еще пытается заставить это работать, прочитайте всю цепочку ссылок Shay, чтобы найти полное решение. – ForeverWintr

1

не думаю есть.

Если вы разворачиваете свое приложение с одним кликом с веб-страницы, вы можете согласиться с этим соглашением, прежде чем устанавливать приложение. Эффект будет таким же.

2

Для тех, кто пытается сделать это будет работать ... Я использую Visual Studio 2008 и Лик Coppermill сказал, расположение «C: \ Program Files \ Microsoft SDKs \ Windows \ v6. 0A \ Bootstrapper \ Packages \»

Я также должен добавить пару других вещей в product.xml:

<?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> 

Я также пришлось создать„делать ничего“исполняемый иначе elcu.txt бы открыть в блокноте. В любом случае, удачи ...

+0

Я сейчас борюсь с этой проблемой. Как вы добавили ничего не делать? И что вы имеете в виду, добавили в product.xml? – bluebit

+0

Игнорировать комментарий о добавлении ... Я не помню, почему я разместил его. Что касается исполняемого файла «ничего не делать», я просто скомпилировал простую программу на C++, которая сразу же выходит. Я должен был сделать это, потому что он откроет файл elua.txt в блокноте после загрузки его в качестве предварительного. что не то, что я хотел произойти. – 2009-11-04 21:41:09

+0

Вы также можете использовать ничего .bat-файла с теми же результатами. Пример. эхо "Elua Приняты" (сохранить в файле летучей мыши) 2009-11-04 22:03:47

1

Если мы используем Visual Studio 2010, мы добавили его в папку "C:\Program Files\Microsoft SDKs\Windows\v7.0A\Bootstrapper\Packages". Он работает сейчас.

+0

Является ли это решением? – Sachin

0

Я отправляю это как ответ на сообщение Юки Идзуми. Вместо того чтобы использовать пакетный файл, я добавил пустой файл VBS и модифицировал product.xml в

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

Это еще один способ предотвратить Eula.txt от открытия при нажатии кнопки Принять. Я также пытался использовать файл rtf. Это отображается правильно (VS 2015).

Смежные вопросы