我使用ClickOnce发布Windows窗体应用程序。考虑到这个应用程序的整体大小,安装非常大。它超过15 MB。如果我压缩本地构建的应用程序,它会被挤压到2.5 MB。
可以以某种方式压缩ClickOnce部署吗?
如果没有,是否有人使用IIS压缩加速转移?那会有帮助吗?
答案 0 :(得分:10)
据我所知,您无法真正手动压缩程序集。但是,绝对可以使用IIS压缩。从带宽监视器的测试来看,它有很大的不同。一旦它成立,你就不必考虑它,它只是自动发生。
我很惊讶这不是经常谈论的。几年前,当我想要这样做时,我几乎找不到有关它的信息。但是,this article应详细说明运行IIS 6.0时需要进行的所有更改。我不确定这些说明对于IIS的更高版本会有多少不同。
答案 1 :(得分:3)
ClickOnce没有任何内置压缩支持。但您可以在Web服务器级别使用HTTP压缩。
按照以下步骤在 IIS7 下启用压缩:
%WINDIR%\ SYSTEM32 \ INETSRV \设置\的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" />
答案 2 :(得分:2)
对于更高版本的IIS,这些说明是相同的。这种压缩工作非常快(它在后台完成,只有一次,直到文件将被更改)