Can ClickOnce deployed application setup be compre

2019-01-25 15:44发布

I publish Windows Forms application using ClickOnce. The installation is quite big considering the overall size of this app. It's something over 15 MB. If I compress locally built application it is squeezed to 2.5 MB.

Can ClickOnce deployment be compressed somehow?

If not, is anyone using IIS compression to speed up transfers? Would that help?

3条回答
戒情不戒烟
2楼-- · 2019-01-25 16:08

Those instructions are the same for later version of IIS. This compression works pretty fast (it is done in the background and only once until file will be changed)

查看更多
劳资没心,怎么记你
3楼-- · 2019-01-25 16:21

As far as I know, you can't really manually compress your assemblies. However, you absolutely can use IIS compression. From my testing with a bandwidth monitor, it makes a significant difference. And once it's set up, you never have to think about it, it just happens automatically.

I'm surprised this isn't talked about more often. When I wanted to do this a few years ago I could find very little information about it. However, this article should detail all the changes you need to make if you're running IIS 6.0. I'm not sure how much different those instructions will be for later versions of IIS.

查看更多
干净又极端
4楼-- · 2019-01-25 16:27

ClickOnce does not have any built-in compression support. But you can use HTTP-compression at the web-server level.

Follow these steps to enable compression under IIS7:

%windir%\system32\inetsrv\config\applicationHost.config (see my comments, other lines are default)

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

Still not working?? Add this to the same file (by default IIS 7.0 does not compress files unless they are "frequently requested")

<serverRuntime frequentHitTimePeriod="00:00:59" />
查看更多
登录 后发表回答