У меня есть приложение .NET 3.5 SP1 WinForms. Я настроил его для развертывания ClickOnce со следующими настройками:
- Публикация в папку: \\ fileserver \ installers \ myapp \
- Предварительные требования: Установщик Windows 3.1, .NET Framework 3.5 SP1
- Загрузите необходимые компоненты из следующего расположения: \\ fileserver \ installers \ common \
- Приложение доступно в автономном режиме (устанавливается в «Установка и удаление программ» и «Пуск»)
Вполне вероятно, что у наших пользователей уже не будет доступа к Интернету или 3.5. Поскольку все они будут находиться в интрасети компании, мы установили необходимые установщики в общий сетевой ресурс, к которому они все смогут получить доступ.
При тестировании установки на машине без .NET 3.5 все работает нормально. Он устанавливает предварительные требования и приложение и запускается без проблем.
Проблема в том, что каждый раз, когда я развертываю приложение (с помощью кнопки «Опубликовать»), Visual Studio 2008 настаивает на копировании всех необходимых файлов / папок с моего ПК для разработки в сетевое расположение (installers \ myapp). Это приводит к тому, что мое 20-мегабайтное приложение в папке занимает около 200 мегабайт. Это эффективно дублирует все, поскольку предварительные требования ~ 200 МБ уже находятся в папке installers \ common. Как я уже сказал, он устанавливается нормально. Он даже отлично устанавливается, если я удаляю предварительные требования, которые VS помещает в папку myapp, предположительно потому, что установщик в любом случае получает их из общего расположения (как указано в диалоговом окне предварительных требований).
Возможно, это тривиальная проблема, поскольку ничего не происходит неправильно, и она будет работать нормально, но это раздражает по двум причинам:
- Это замедляет развертывание, поскольку мне приходится передавать более 200 мегабайт по сети каждый раз, когда я публикую небольшое изменение в приложении
- Это теряет место на нашем файловом сервере
Я могу решить вторую проблему, просто удаляя папки каждый раз, но это само по себе является раздражающим дополнительным шагом.