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

Add XNA redist to prerequisites repository #1096

Closed
fasterthanlime opened this issue Dec 30, 2016 · 11 comments
Closed

Add XNA redist to prerequisites repository #1096

fasterthanlime opened this issue Dec 30, 2016 · 11 comments

Comments

@fasterthanlime
Copy link
Collaborator

See itchio/itch-compatibility-watchlist#485

(And make sure Lemma uses it once it's out)

@Metalfusion
Copy link

Any ETA for this? My game (Battlefleet Engineer) needs the XNA 4.0 Refresh to run and I would like to not have to have an installer just for that.

@fasterthanlime
Copy link
Collaborator Author

So I have good news and bad news.

The good news is: I just spent hours adding XNA 4 to our redists database, and it works great 👍

The bad news is: v23.4.0 apparently completely skips over windows prereqs. I'm hoping to release a fix real soon for that, I'll let you know when that happens.

@fasterthanlime
Copy link
Collaborator Author

Good news: v23.4.1 is out, and it installs prereqs correctly.

You can test with "xna-4.0" for the prereq name, @Metalfusion. I'll add it to the docs once you confirm it works properly for you :)

@MichaelDePiazzi
Copy link

@fasterthanlime Sorry to be a pain, but any updates on support for DirectX (#1042) and .NET Framework (#1061) pre-reqs? Thanks!

@Metalfusion
Copy link

@fasterthanlime It seems the itch app now tries to install the prerequisite even as I have it already installed. Maybe we somehow have different installer packages.

I would suggest using a different registry key for checking if the Microsoft XNA Framework Redistributable 4.0 Refresh is installed.

On a 32-bit OS:
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\XNA\Framework\v4.0]
Refresh1Installed=1

On a 64-bit OS:
[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\XNA\Framework\v4.0]
Refresh1Installed=1

@fasterthanlime
Copy link
Collaborator Author

@fasterthanlime It seems the itch app now tries to install the prerequisite even as I have it already installed. Maybe we somehow have different installer packages.

That's very possible. The install should be really fast though, since it's already installed :)

On a 32-bit OS:
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\XNA\Framework\v4.0]
Refresh1Installed=1

On a 64-bit OS:
[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\XNA\Framework\v4.0]
Refresh1Installed=1

I've spent quite a bit of time hunting for those, thanks! My current redist format doesn't allow querying values just yet, it just checks that a certain key entry exists. I'll update it at a later date, since the current system will work even if it means one unnecessary run of the installer.

@Metalfusion
Copy link

Metalfusion commented May 7, 2017

On my development machine with Windows 8.1 and Microsoft XNA Game Studio 4.0 Refresh the prerequisite install fails, generating the following log:
https://gist.github.com/Metalfusion/c2d97626150e00651ce4db00d514467c

However, I also tested in a clean Windows 10 virtual machine and there it installed fine so this probably won't affect normal users. My guess is that the XNA game studio package for developers includes the redistributable's content but has different product ID or something, but the redistributable installer detects that it is already installed.

Anyway, this already practically solves my XNA prerequisite problem. Thanks @fasterthanlime!

@fasterthanlime
Copy link
Collaborator Author

@Metalfusion interesting - that's most definitely what's happening.

Can you do me a favor and;

  • Download this: https://www.microsoft.com/en-us/download/details.aspx?id=27598
  • Open a Command Prompt as administrator (From start menu, search for cmd.exe, right click -> Run as administrator)
  • Run msiexec /quiet /norestart /l*v C:\msilog.txt /i C:\complete\path\to\xnafx40_redist.msi
  • Post the contents of C:\msilog.txt as a gist

If it returns a predictable error code, then I can just ignore that!

@Metalfusion
Copy link

Here you go:
https://gist.github.com/Metalfusion/9ddbfe4e584e8a7255cc39f73eca6692

Seems to be around line 348

@fasterthanlime
Copy link
Collaborator Author

Alright, well in typical MSI fashion, it's returning the most generic of error codes (1603 - which just means "something went wrong"). The actual error code is Error 1316. The specified account already exists., like you found out.

So, it will actually fail for users who already have the full IDE installed.

On the plus side, I've been investigating using node-registry-windows directly to look up the registry (instead of exec'ing reg.exe). We can do now that we're set up for using native node.js modules in the app (this shipped with the last version, had to adjust the CI infrastructure).

I'm leaving this gist here as reference of how to read a value from the registry using it:

https://gist.github.com/fasterthanlime/b85801149e409770b23d331c282002c7

@fasterthanlime
Copy link
Collaborator Author

Good news, the actual source of the issue is detailed in #1304 (and a fix is on the way)!

Closing in favor of that.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants