Search Unity

  1. Welcome to the Unity Forums! Please take the time to read our Code of Conduct to familiarize yourself with the forum rules and how to post constructively.
  2. We have updated the language to the Editor Terms based on feedback from our employees and community. Learn more.
    Dismiss Notice
  3. Join us on November 16th, 2023, between 1 pm and 9 pm CET for Ask the Experts Online on Discord and on Unity Discussions.
    Dismiss Notice

x86 and x64 builds

Discussion in 'Windows' started by m0rgul, Mar 17, 2015.

  1. m0rgul

    m0rgul

    Joined:
    Mar 17, 2015
    Posts:
    7
    Hello kind people,

    I find myself in a bit of a situation. We are developing an application, and so far we have had several download links on our website. 2 builds for the full application, 2 builds for Oculus (x86 and x64). This means that everytime we launch something, we have to make 4 builds, 4 patches, etc...so I got tired of this and decided to make a launcher for our app. The launcher is a simple app that generates and XML with some options and launches the appropriate app, depending on the OS (if it's 32-bit or 64-bit).

    So far so good. The easy solution here would be to still build 2 applications, house them in separate folders and launch them as needed. But then users would download one totally useless app (that is the assets, they are the largest files in the project). So I had the idea of having shared assets (since the scenes themselves do not change between builds).

    My question is this: what are the files that DO change between x86 and x64 builds?

    I did try to copy the .exe files and the only thing it said it was missing was the correct mono.dll file. So then is it possible to create a shared folder and just copy / move the appropriate mono.dll file? Or are there any other things that I need to consider?

    Also, does the player change (the actual .exe) if I change stuff in the project? (say add/remove a scene...?)

    My goal here is to create a single app, as small as possible, combining the current 4 apps that we host on our website.

    Thanks in advance!
     
  2. Tomas1856

    Tomas1856

    Unity Technologies

    Joined:
    Sep 21, 2012
    Posts:
    3,672
    I am guessing you're talking about Windows Standalone.

    No, the exe is precompiled, that means it's always the same, it doesn't depend on project contents. The resource files are probably the same as well comparing 32 bit export vs 64 bit export.

    But just to be sure, take some diff tool, for ex., WinMerge and compare the two directories.
     
  3. shkar-noori

    shkar-noori

    Joined:
    Jun 10, 2013
    Posts:
    833
    I think the only stuff that are changing are the exe, the mono runtime, and the platform specific plugins. so you can have both versions of those and a default one, and create a player to replace the default files with the architecture specific ones.
     
  4. m0rgul

    m0rgul

    Joined:
    Mar 17, 2015
    Posts:
    7
    From what I can tell, the exe changes only when setting different player options (like show/hide resolution dialog, etc). So the exe files I can leave out of the "patching" process. On the other hand, I have used all DLLs (except the contents of the Mono folder) from x64 on 32 bit and vice versa and stuff still works. I am concerned however that I did not somehow get to test everything and that at some point I may have some trouble due to all these DLLs. That is why I'm asking.