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
Fix #55847: DOTNET .NET 4.0 GAC new location #5949
Conversation
Looks sensible, but I'm not familiar with the subject matter. |
On Fri, 7 Aug 2020, Christoph M. Becker wrote:
Thanks @nikic!
@derickr, would you generally be okay with this? It's introducing a
new INI setting for PHP 7.4, but should otherwise be fully backward
compatible.
The bug report that refers to was submitted on 2011-10-04 16:23 UTC -
nearly 9 years ago. Is there a really strong reason this can't wait
until PHP 8?
cheers,
Derick
|
If PHP 7.5 was next, there wouldn't, in my opinion, because users likely could upgrade within the next year. I don't see that the upgrade path to PHP 8 is as smooth, so a lot of code-bases may not be able to upgrade for some years. Still, these code-bases may benefit from being able to use the |
I am never really much a fan of introducing ini settings, and I don't think it's wise to do this halfway through a cycle :-/. |
If we do not specify the exact version of the .NET framework to use, the default CLR is loaded, which is typically CLR 2, which is very old. Therefore, we introduce a `PHP_INI_SYSTEM` setting, which allows users to choose the desired .NET framework version. The value of the setting are the first three parts of the framework's version number, separated by dots, and prefixed with "v", e.g. "v4.0.30319". If the value of the INI setting is `NULL` (the default) or an empty string, the default CLR is used. Internally, we switch from the most generic `CoCreateInstance()` to `CorBindToRuntime()` which is implemented in mscoree.dll. To avoid the hard dependency to that library, we load dynamically. So this fix is supposed to be fully backwards compatible.
I can't really argue against that, so I've switched to target the "master" branch instead. |
Closing and re-opening to retrigger CI. |
If there are no objections, I'll merge this in a week. |
Cf. <php/php-src#5949>. git-svn-id: https://svn.php.net/repository/phpdoc/en/trunk@350811 c90b9560-bf6c-de11-be94-00142212c4b1
If we do not specify the exact version of the .NET framework to use,
the default CLR is loaded, which is typically CLR 2, which is very old.
Therefore, we introduce a
PHP_INI_SYSTEM
setting, which allows usersto choose the desired .NET framework version. The value of the setting
are the first three parts of the framework's version number, separated
by dots, and prefixed with "v", e.g. "v4.0.30319". If the value of the
INI setting is
NULL
(the default) or an empty string, the default CLRis used.
Internally, we switch from the most generic
CoCreateInstance()
toCorBindToRuntime()
which is implemented in mscoree.dll. To avoid thehard dependency to that library, we load dynamically.
So this fix is supposed to be fully backwards compatible.