Поделиться через


Пошаговое руководство. Создание пользовательского загрузчика с предупреждением о конфиденциальности

Вы можете настроить приложения ClickOnce для автоматического обновления при наличии новых версий файлов и версий сборок. Чтобы убедиться, что ваши клиенты согласны с этим поведением, вы можете отобразить для них запрос конфиденциальности. Затем они могут выбрать, следует ли предоставлять приложению разрешение на автоматическое обновление. Если приложению не разрешено автоматически обновляться, она не устанавливается.

Примечание.

Отображаемые на компьютере имена или расположения некоторых элементов пользовательского интерфейса Visual Studio могут отличаться от указанных в этой статье. Возможно, вы используете другой выпуск Visual Studio или разные параметры среды. Дополнительные сведения см. в разделе Персонализация среды IDE.

Чтобы отобразить запрос на конфиденциальность, создайте приложение, которое запрашивает читателя согласие на автоматическое обновление приложения.

  1. В меню Файл выберите пункт Создать и затем пункт Проект.

  2. В диалоговом окне "Создать проект" щелкните Windows и щелкните WindowsFormsApplication.

  3. В поле "Имя" введите ConsentDialog и нажмите кнопку "ОК".

  4. В конструкторе щелкните форму.

  5. В окне "Свойства" измените свойство Text на "Обновить диалоговое окно согласия".

  6. На панели элементов разверните все windows Forms и перетащите элемент управления Label в форму.

  7. В конструкторе щелкните элемент управления меткой.

  8. В окне "Свойства" измените свойство Text в разделе "Внешний вид" следующим образом:

    Приложение, которое вы хотите установить, проверяет наличие последних обновлений в Интернете. Щелкнув "Я согласен", вы авторизуете приложение для проверки и установки обновлений автоматически из Интернета.

  9. На панели элементов перетащите элемент управления "Флажок" в середину формы.

  10. В окне "Свойства" измените свойство Text в разделе "Макет" на "Я согласен".

  11. На панели элементов перетащите элемент управления Button влево от формы.

  12. В окне "Свойства" измените свойство Text в разделе "Макет" на "Продолжить".

  13. В окне "Свойства" измените свойство (Name) в разделе Конструктор на ProceedButton.

  14. На панели элементов перетащите элемент управления Button вправо от формы.

  15. В окне "Свойства" измените свойство Text в разделе "Макет" на "Отмена".

  16. В окне "Свойства" измените свойство (Name) в разделе Конструктор на CancelButton.

  17. В конструкторе дважды щелкните флажок "Я согласен" , чтобы создать обработчик событий CheckedChanged.

  18. В файле кода Form1 добавьте следующий код для обработчика событий CheckedChanged.

    private void checkBox1_CheckedChanged(object sender, EventArgs e)
    {
        ProceedButton.Enabled = !ProceedButton.Enabled;
    }
    
  19. Обновите конструктор класса, чтобы отключить кнопку "Продолжить " по умолчанию.

    public Form1()
    {
        InitializeComponent();
        ProceedButton.Enabled = false;
    }
    
  20. В файле кода Form1 добавьте следующий код для логическое значение переменной, чтобы отслеживать, предоставил ли конечный пользователь согласие на обновление через Интернет.

    public bool accepted = false;
    
  21. В конструкторе дважды нажмите кнопку "Продолжить" , чтобы создать обработчик событий Click.

  22. В файле кода Form1 добавьте следующий код в обработчик событий Click для кнопки "Продолжить ".

    private void ProceedButton_Click(object sender, EventArgs e)
    {
        if (ProceedButton.Enabled)
        {
            accepted = true;
            this.Close();
        }
    }
    
  23. В конструкторе дважды нажмите кнопку "Отмена ", чтобы создать обработчик событий Click.

  24. В файле кода Form1 добавьте следующий код для обработчика событий Click для кнопки "Отмена ".

    private void CancelButton_Click(object sender, EventArgs e)
    {
        this.Close();
    }
    
  25. Обновите приложение, чтобы вернуть ошибку, если конечный пользователь не дает согласия на веб-обновления.

    Только для разработчиков Visual Basic:

    1. В Обозреватель решений щелкните ConsentDialog.

    2. В меню "Проект" нажмите кнопку "Добавить модуль" и нажмите кнопку "Добавить".

    3. В файле кода Module1.vb добавьте следующий код.

      Module Module1
      
          Function Main() As Integer
              Application.EnableVisualStyles()
              Application.SetCompatibleTextRenderingDefault(False)
              Dim f As New Form1()
              Application.Run(f)
              If (Not f.accepted) Then
                  Return -1
              Else
                  Return 0
              End If
          End Function
      
      End Module
      
    4. В меню "Проект" щелкните "Свойства ConsentDialog" и перейдите на вкладку "Приложение".

    5. Снимите флажок Включить платформу приложений.

    6. В раскрывающемся меню "Объект запуска" выберите Module1.

      Примечание.

      Отключение платформы приложений отключает такие функции, как визуальные стили, события приложения, экран-заставка, приложение одного экземпляра и многое другое. Дополнительные сведения см. в разделе Application Page, Project Designer (Visual Basic).

      Только для разработчиков Visual C#:

      Откройте файл кода Program.cs и добавьте следующий код.

      static int Main()
      {
          Application.EnableVisualStyles();
          Application.SetCompatibleTextRenderingDefault(false);
          Form1 f = new Form1();
          Application.Run(f);
          if (!f.accepted)
              return -1;
          else
              return 0;
      }
      
  26. В меню "Сборка " щелкните BuildSolution.

Создание пользовательского пакета начальной загрузки

Чтобы отобразить запрос конфиденциальности конечным пользователям, можно создать пользовательский пакет начальной загрузки для приложения диалогового окна "Согласие обновления" и включить его в качестве необходимых компонентов во всех приложениях ClickOnce.

В этой процедуре показано, как создать пользовательский пакет начальной загрузки, создав следующие документы:

  • Файл манифеста product.xml для описания содержимого загрузчика.

  • Файл манифеста package.xml для перечисления аспектов локализации пакета, таких как строки и условия лицензионного соглашения на программное обеспечение.

  • Документ для условий лицензионного соглашения на программное обеспечение.

Шаг 1. Создание каталога начального загрузчика

  1. Создайте каталог с именем UpdateConsentDialog в папке %PROGRAMFILES%\Microsoft SDK\Windows\v7.0A\Bootstrapper\Packages.

    Примечание.

    Для создания этой папки могут потребоваться права администратора.

  2. В каталоге UpdateConsentDialog создайте подкаталог с именем en.

    Примечание.

    Создайте новый каталог для каждого языкового стандарта. Например, можно добавить подкаталоги для языков fr и de locales. При необходимости эти каталоги будут содержать французские и немецкие строки и языковые пакеты.

Шаг 2. Создание файла манифеста product.xml

  1. Создайте текстовый файл с именем product.xml.

  2. В файле product.xml добавьте следующий XML-код. Убедитесь, что существующий XML-код не перезаписывается.

    <Product
      xmlns="http://schemas.microsoft.com/developer/2004/01/bootstrapper"
      ProductCode="Microsoft.Sample.EULA">
      <!-- Defines the list of files to be copied on build. -->
      <PackageFiles CopyAllPackageFiles="false">
        <PackageFile Name="ConsentDialog.exe"/>
      </PackageFiles>
    
      <!-- Defines how to run the Setup package.-->
      <Commands >
        <Command PackageFile = "ConsentDialog.exe" Arguments=''>
          <ExitCodes>
            <ExitCode Value="0" Result="Success" />
            <ExitCode Value="-1" Result="Fail" String="AU_Unaccepted" />
            <DefaultExitCode Result="Fail"
              FormatMessageFromSystem="true" String="GeneralFailure" />
          </ExitCodes>
        </Command>
      </Commands>
    
    </Product>
    
  3. Сохраните файл в каталог загрузчика UpdateConsentDialog.

Шаг 3. Создание файла манифеста package.xml и условий лицензионного соглашения на программное обеспечение

  1. Создайте текстовый файл с именем package.xml.

  2. В файле package.xml добавьте следующий XML-код, чтобы определить языковой стандарт и включить условия лицензионного соглашения на программное обеспечение. Убедитесь, что существующий XML-код не перезаписывается.

    <Package
      xmlns="http://schemas.microsoft.com/developer/2004/01/bootstrapper"
      Name="DisplayName"
      Culture="Culture"
      LicenseAgreement="eula.rtf">
      <PackageFiles>
        <PackageFile Name="eula.rtf"/>
      </PackageFiles>
    
      <!-- Defines a localizable string table for error messages. -->
      <Strings>
        <String Name="DisplayName">Update Consent Dialog</String>
        <String Name="Culture">en</String>
        <String Name="AU_Unaccepted">The automatic update agreement is not accepted.</String>
        <String Name="GeneralFailure">A failure occurred attempting to launch the setup.</String>
      </Strings>
    </Package>
    
  3. Сохраните файл в подкаталоге в каталоге UpdateConsentDialog bootstrapper.

  4. Создайте документ с именем eula.rtf для условий лицензионного соглашения на программное обеспечение.

    Примечание.

    Условия лицензионного соглашения на программное обеспечение должны содержать сведения о лицензировании, гарантии, обязательствах и местных законах. Эти файлы должны быть языковым стандартом, поэтому убедитесь, что файл сохраняется в формате, поддерживающем символы MBCS или ЮНИКОД. Обратитесь к юридическому отделу по поводу содержимого условий лицензионного соглашения на программное обеспечение.

  5. Сохраните документ в подкаталоге в каталоге UpdateConsentDialog bootstrapper.

  6. При необходимости создайте новый файл манифеста package.xml и новый документ eula.rtf для условий лицензионного соглашения на программное обеспечение для каждого языкового стандарта. Например, если вы создали подкаталоги для языков fr и de locales, создайте отдельные файлы манифеста package.xml и условия лицензионного соглашения программного обеспечения и сохраните их в подкаталогах fr и de localdirectory.

В Visual Studio можно задать приложение "Согласие на обновление" в качестве необходимых компонентов.

  1. В Обозреватель решений щелкните имя приложения, которое требуется развернуть.

  2. В меню "Проект" щелкните "Свойства ProjectName".

  3. Щелкните страницу публикации и выберите необходимые компоненты.

  4. Диалоговое окно "Обновление согласия".

    Примечание.

    Возможно, вам придется закрыть и повторно открыть Visual Studio, чтобы увидеть диалоговое окно "Согласие на обновление" в диалоговом окне "Предварительные требования".

  5. Щелкните OK.

Создание и проверка программы установки

После установки приложения "Согласие на обновление" в качестве обязательного условия можно создать установщик и загрузчик для приложения.

Чтобы создать и проверить программу установки, не нажав кнопку "Я согласен"

  1. В Обозреватель решений щелкните имя приложения, которое требуется развернуть.

  2. В меню "Проект" щелкните "Свойства ProjectName".

  3. Щелкните страницу "Опубликовать " и нажмите кнопку "Опубликовать сейчас".

  4. Если выходные данные публикации не открываются автоматически, перейдите к выходным данным публикации.

  5. Запустите программу Setup.exe.

    Программа установки отображает лицензионное соглашение "Диалоговое окно согласия обновления".

  6. Прочитайте лицензионное соглашение по программному обеспечению и нажмите кнопку "Принять".

    Откроется диалоговое окно "Согласие на обновление" и отображается следующий текст: приложение, которое вы будете устанавливать проверки последних обновлений в Интернете. Щелкнув "Я согласен", вы авторизуете приложение для автоматического проверки обновлений в Интернете.

  7. Закройте приложение или нажмите кнопку "Отменить".

    Приложение отображает ошибку: при установке системных компонентов для ApplicationName произошла ошибка. Установка не может продолжаться до тех пор, пока все системные компоненты не будут успешно установлены.

  8. Щелкните "Сведения", чтобы отобразить следующее сообщение об ошибке: диалоговое окно согласия на обновление компонентов не удалось установить со следующим сообщением об ошибке: "Соглашение об автоматическом обновлении не принимается". Не удалось установить следующие компоненты: — диалоговое окно "Обновление согласия"

  9. Нажмите кнопку Закрыть.

Чтобы создать и проверить программу установки, нажав кнопку "Я согласен"

  1. В Обозреватель решений щелкните имя приложения, которое требуется развернуть.

  2. В меню "Проект" щелкните "Свойства ProjectName".

  3. Щелкните страницу "Опубликовать " и нажмите кнопку "Опубликовать сейчас".

  4. Если выходные данные публикации не открываются автоматически, перейдите к выходным данным публикации.

  5. Запустите программу Setup.exe.

    Программа установки отображает лицензионное соглашение "Диалоговое окно согласия обновления".

  6. Прочитайте лицензионное соглашение по программному обеспечению и нажмите кнопку "Принять".

    Откроется диалоговое окно "Согласие на обновление" и отображается следующий текст: приложение, которое вы будете устанавливать проверки последних обновлений в Интернете. Щелкнув "Я согласен", вы авторизуете приложение для автоматического проверки обновлений в Интернете.

  7. Нажмите кнопку " Я согласен", а затем нажмите кнопку "Продолжить".

    Приложение начинает устанавливаться.

  8. Если появится диалоговое окно "Установка приложения", нажмите кнопку "Установить".