Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

🔄 Added MSVCR110.dll files to setup script and updated release version and .gitignore #13

Merged
merged 1 commit into from
Oct 20, 2024

Conversation

N6REJ
Copy link
Contributor

@N6REJ N6REJ commented Oct 20, 2024

User description

TO TEST:
remove msvcr110.dll from the system32 and sysWOW64 folder and restart.
verify running sandbox fails.
run the prerequisite installer
restart
attempt to start sandbox

fix #12


PR Type

enhancement, configuration changes


Description

  • Added the 32-bit and 64-bit MSVCR110.dll files to the setup script to ensure they are installed in the correct system directories (SysWOW64 and System32).
  • Updated the release version in build.properties to 2024.10.20.
  • These changes address the issue of the missing MSVCR110.dll file, which was causing errors when launching the application.

Changes walkthrough 📝

Relevant files
Enhancement
setup.iss
Include MSVCR110.dll files in setup script                             

setup/setup.iss

  • Added 32-bit MSVCR110.dll to SysWOW64.
  • Added 64-bit MSVCR110.dll to System32.
  • +7/-0     
    Configuration changes
    build.properties
    Update release version in build properties                             

    build.properties

    • Updated prerequisites.release version to 2024.10.20.
    +1/-1     

    💡 PR-Agent usage: Comment /help "your question" on any pull request to receive relevant information

    @N6REJ N6REJ added the bug 🐛 For known bugs label Oct 20, 2024
    Copy link

    PR Reviewer Guide 🔍

    Here are some key observations to aid the review process:

    🎫 Ticket compliance analysis ✅

    12 - Fully compliant

    Fully compliant requirements:

    • Fix the "MSVCR110.dll missing" error on Windows 11 24H2
    • Ensure Bearsampp can launch without requiring manual installation of Visual C++ Redistributable for Visual Studio 2012 Update 4
    ⏱️ Estimated effort to review: 2 🔵🔵⚪⚪⚪
    🧪 No relevant tests
    🔒 No security concerns identified
    ⚡ Recommended focus areas for review

    Potential Overwrite
    The use of 'onlyifdoesntexist' flag for MSVCR110.dll installation might prevent updates if a newer version is available. Consider if this is the intended behavior.

    Missing Cleanup
    There's no explicit cleanup or uninstall step for the newly added MSVCR110.dll files. This might lead to orphaned files if the software is uninstalled.

    Copy link

    PR Code Suggestions ✨

    Explore these optional code suggestions:

    CategorySuggestion                                                                                                                                    Score
    Enhancement
    Add a system architecture check for 64-bit DLL installation

    Consider adding a check to verify if the system is 64-bit before installing the
    64-bit MSVCR110.dll, similar to the check used for vc_redist.x64.exe.

    setup/setup.iss [47-48]

     ; Add the 64-bit MSVCR110.dll to System32
    -Source: "src\msvcr\MSVCR110.dll-64-Bit\msvcr110.dll"; DestDir: "{sys}"; Flags: ignoreversion  onlyifdoesntexist
    +Source: "src\msvcr\MSVCR110.dll-64-Bit\msvcr110.dll"; DestDir: "{sys}"; Flags: ignoreversion onlyifdoesntexist; Check: IsWin64
    • Apply this suggestion
    Suggestion importance[1-10]: 8

    Why: Adding a check for system architecture before installing the 64-bit DLL is a significant enhancement that prevents potential installation issues on incompatible systems.

    8
    Maintainability
    Introduce a variable for the MSVCR version to improve maintainability

    Consider using a variable or constant to define the MSVCR110.dll version, making it
    easier to update in the future if needed.

    setup/setup.iss [45-48]

    +#define MSVCRVersion "110"
    +
     ; Add the 32-bit MSVCR110.dll to SysWOW64
    -Source: "src\msvcr\MSVCR110.dll-32-Bit\msvcr110.dll"; DestDir: "{syswow64}"; Flags: ignoreversion  onlyifdoesntexist
    +Source: "src\msvcr\MSVCR{#MSVCRVersion}.dll-32-Bit\msvcr{#MSVCRVersion}.dll"; DestDir: "{syswow64}"; Flags: ignoreversion onlyifdoesntexist
     
     ; Add the 64-bit MSVCR110.dll to System32
    -Source: "src\msvcr\MSVCR110.dll-64-Bit\msvcr110.dll"; DestDir: "{sys}"; Flags: ignoreversion  onlyifdoesntexist
    +Source: "src\msvcr\MSVCR{#MSVCRVersion}.dll-64-Bit\msvcr{#MSVCRVersion}.dll"; DestDir: "{sys}"; Flags: ignoreversion onlyifdoesntexist
    • Apply this suggestion
    Suggestion importance[1-10]: 7

    Why: Using a variable for the MSVCR version enhances maintainability by centralizing version control, making future updates easier and reducing the risk of errors.

    7
    Best practice
    Ensure consistent spacing in flag definitions

    Remove the extra space between 'ignoreversion' and 'onlyifdoesntexist' flags to
    maintain consistent formatting.

    setup/setup.iss [45-48]

    -Source: "src\msvcr\MSVCR110.dll-32-Bit\msvcr110.dll"; DestDir: "{syswow64}"; Flags: ignoreversion  onlyifdoesntexist
    +Source: "src\msvcr\MSVCR110.dll-32-Bit\msvcr110.dll"; DestDir: "{syswow64}"; Flags: ignoreversion onlyifdoesntexist
     
     ; Add the 64-bit MSVCR110.dll to System32
    -Source: "src\msvcr\MSVCR110.dll-64-Bit\msvcr110.dll"; DestDir: "{sys}"; Flags: ignoreversion  onlyifdoesntexist
    +Source: "src\msvcr\MSVCR110.dll-64-Bit\msvcr110.dll"; DestDir: "{sys}"; Flags: ignoreversion onlyifdoesntexist
    • Apply this suggestion
    Suggestion importance[1-10]: 5

    Why: Removing extra spaces between flags improves code readability and maintains consistent formatting, although it has a minor impact on functionality.

    5

    💡 Need additional feedback ? start a PR chat

    @N6REJ N6REJ mentioned this pull request Oct 20, 2024
    @jwaisner jwaisner merged commit 511f3d9 into main Oct 20, 2024
    2 checks passed
    @jwaisner jwaisner deleted the msvcr110 branch October 20, 2024 15:31
    Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
    Labels
    bug 🐛 For known bugs
    Projects
    None yet
    Development

    Successfully merging this pull request may close these issues.

    MSVCR110.dll missing
    2 participants