2009-02-05 2 views
6

Я публикую приложение Windows Forms с помощью ClickOnce. Установка довольно большая, учитывая общий размер этого приложения. Это нечто более 15 МБ. Если я сжимаю локально построенное приложение, оно сжимается до 2,5 МБ.Можно ли сжимать развернутую установку приложения ClickOnce?

Может ли развертывание ClickOnce быть сжатым каким-то образом?

Если нет, то кто-нибудь использует сжатие IIS для ускорения передач? Это поможет?

ответ

10

Насколько я знаю, вы не можете вручную сжать свои сборки вручную. Тем не менее, вы абсолютно можете использовать сжатие IIS. Из моего тестирования с помощью монитора полосы пропускания это имеет существенное значение. И как только он настроен, вам никогда не придется об этом думать, это просто происходит автоматически.

Я удивлен, что об этом больше не говорят. Когда я хотел сделать это несколько лет назад, я мог найти очень мало информации об этом. Тем не менее, this article должен подробно описать все изменения, которые необходимо внести, если вы используете IIS 6.0. Я не уверен, насколько сильно эти инструкции будут использоваться для более поздних версий IIS.

2

Эти инструкции являются идентичными для более поздней версии IIS. Это сжатие работает довольно быстро (это выполняется в фоновом режиме и только один раз, пока файл не будет изменен)

3

ClickOnce не имеет встроенной поддержки сжатия. Но вы можете использовать HTTP-сжатие на уровне веб-сервера.

Выполните следующие действия, чтобы включить сжатие под IIS7:

% WINDIR% \ system32 \ Inetsrv \ Config \ applicationHost.config (см мои комментарии, остальные строки по умолчанию)

<httpCompression directory="%SystemDrive%\inetpub\temp\IIS Temporary Compressed Files"> 
    <scheme name="gzip" dll="%Windir%\system32\inetsrv\gzip.dll" /> 
    <dynamicTypes> 
     <add mimeType="text/*" enabled="true" /> 
     <add mimeType="message/*" enabled="true" /> 
     <add mimeType="application/x-javascript" enabled="true" /> 
     <add mimeType="*/*" enabled="false" /> 
    </dynamicTypes> 
    <staticTypes> 
     <add mimeType="text/*" enabled="true" /> 
     <add mimeType="message/*" enabled="true" /> 
     <add mimeType="application/x-javascript" enabled="true" /> 
     <add mimeType="application/atom+xml" enabled="true" /> 
     <add mimeType="application/xaml+xml" enabled="true" /> 
     <!--HERE! deploy files--> 
     <add mimeType="application/octet-stream" enabled="true" /> 
     <!--HERE! application files--> 
     <add mimeType="application/x-ms-application" enabled="true" /> 
     <!--HERE! manifest files--> 
     <add mimeType="application/x-ms-manifest" enabled="true" /> 
     <add mimeType="*/*" enabled="false" /> 
    </staticTypes> 
</httpCompression> 

Все еще не работает?? Добавьте это в тот же файл (по умолчанию IIS 7.0 не сжимает файлы, если они не «часто запрашиваются»)

<serverRuntime frequentHitTimePeriod="00:00:59" />