none
(Sumber: milist DOTNET) Exe, resx, n dll RRS feed

  • Pertanyaan

  •  

    Langsung gan, kenapa final exe (release build) yg pake embedded resource file (PNGs) hasil akhirnya lebih kecil daripada bikin DLL khusus resource  dan di assign programmatically ketika runtime?

    Sebagai perbandingan, exe dgn embedded resx sekitar 3,17MB. Sedangkan menggunakan DLL (embed nya udah dihapus), malah jadi 3,44 MB. Menggunakan embedded resx tentu gak ada coding tambahan dibanding menggunakan DLL. Tapi 1 form cuma nambah 4-5 barisan klo pke DLL. Knp beda size nya gede bgt yh?

    Ada yg punya solusi untuk mengecilkan exe size .net 3.5? Thx b4


    Agnes Sannie [MSFT]
    MSDN Community Support | Feedback to us
    Get or Request Code Sample from Microsoft
    Please remember to mark the replies as answers if they help and unmark them if they provide no help.

    Jumat, 02 Maret 2012 06.44
    Moderator

Jawaban

  •  

    Di .NET ada 2 tipe Resources:

    1. Non-typed Manifest Resources

        Dimasukin dgn cara:

        1a. compiler switch > CSC.exe / resource:something.png

        1b. VStudio Build Action -> Embedded Resource

        Resource model ini sifatnya "compiled"

    2. Typed Resources

        Dimasukin dgn cara VStudio - Add New Item - Assembly Resource File (.resx)

        Resource model ini sifatnya XML, ada Type Information nya.

        Dan karena XML, binary format seperti PNG file di-encode ke dalam

    Base-64 encoding

    <data name="gambar" type="System.Drawing.Bitmap, System.Drawing,

        Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"

        mimetype="application/x-microsoft.net.object.bytearray.base64">

            <value>

                AAEAAAD/////AQAAAAAAAAAMAgAAADtTeX…

            </value>

        </data>

    By default .resx yg di-add otomatis Build Action nya Embedded Resource, jadi di-compile jadi .resources binary Kalo Embedded-nya dihapus ya tetap jadi .resx file yg non-compiled (.resource)

    *Untuk menjawab pertanyaan awal kenapa lebih besar, ya karena Base64 Encoding bikin file size jadi membludak.

    Dijawab oleh: Zeddy Iskandar


    Agnes Sannie [MSFT]
    MSDN Community Support | Feedback to us
    Get or Request Code Sample from Microsoft
    Please remember to mark the replies as answers if they help and unmark them if they provide no help.

    Jumat, 02 Maret 2012 06.46
    Moderator

Semua Balasan

  •  

    Di .NET ada 2 tipe Resources:

    1. Non-typed Manifest Resources

        Dimasukin dgn cara:

        1a. compiler switch > CSC.exe / resource:something.png

        1b. VStudio Build Action -> Embedded Resource

        Resource model ini sifatnya "compiled"

    2. Typed Resources

        Dimasukin dgn cara VStudio - Add New Item - Assembly Resource File (.resx)

        Resource model ini sifatnya XML, ada Type Information nya.

        Dan karena XML, binary format seperti PNG file di-encode ke dalam

    Base-64 encoding

    <data name="gambar" type="System.Drawing.Bitmap, System.Drawing,

        Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"

        mimetype="application/x-microsoft.net.object.bytearray.base64">

            <value>

                AAEAAAD/////AQAAAAAAAAAMAgAAADtTeX…

            </value>

        </data>

    By default .resx yg di-add otomatis Build Action nya Embedded Resource, jadi di-compile jadi .resources binary Kalo Embedded-nya dihapus ya tetap jadi .resx file yg non-compiled (.resource)

    *Untuk menjawab pertanyaan awal kenapa lebih besar, ya karena Base64 Encoding bikin file size jadi membludak.

    Dijawab oleh: Zeddy Iskandar


    Agnes Sannie [MSFT]
    MSDN Community Support | Feedback to us
    Get or Request Code Sample from Microsoft
    Please remember to mark the replies as answers if they help and unmark them if they provide no help.

    Jumat, 02 Maret 2012 06.46
    Moderator
  •  

    @zeddy,

    mantaaap bro.

    berarti klo pke Add New Item >> Resources n masukin semua gambar2nya disitu, maka jatuhnya pasti base64 y? Pantesan jadi gemuk exe nya.

    tapi yg ane bingung knp exe nya jadi gemuk pas dicompile y? Case nya ane pke Add New Item Resource di dll terpisah (berarti jatuhnya base64). Nah file yg mestinya gemuk ini kan seharusnya .dll nya, bukan exe nya. Klo ketika runtime memory yg terpakai bertambah, baru masuk akal. Lah ini di run aja blum.


    Agnes Sannie [MSFT]
    MSDN Community Support | Feedback to us
    Get or Request Code Sample from Microsoft
    Please remember to mark the replies as answers if they help and unmark them if they provide no help.

    Jumat, 02 Maret 2012 06.46
    Moderator