]> granicus.if.org Git - php/commit
Fix #55847: DOTNET .NET 4.0 GAC new location
authorChristoph M. Becker <cmbecker69@gmx.de>
Thu, 6 Aug 2020 16:57:18 +0000 (18:57 +0200)
committerChristoph M. Becker <cmbecker69@gmx.de>
Sat, 22 Aug 2020 10:42:34 +0000 (12:42 +0200)
commite6044d4455d7fbaced7f3a6ac28172d963017e51
tree31a91bbbc78709a3c339680231188a2558846b5e
parent969a432fd8b34a0ec4e48e903370f0659aef6b04
Fix #55847: DOTNET .NET 4.0 GAC new location

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.

Closes GH-5949
NEWS
UPGRADING
ext/com_dotnet/com_dotnet.c
ext/com_dotnet/com_extension.c
php.ini-development
php.ini-production