@joebigelow / wix / commits / d9ab1c3c

Remove support for .NET Core 3.x from dnchost.

Related to 6942

Sean Hall committed Oct 25, 2022 at 15:12 UTC d9ab1c3ce2cdebb865c2283eb3e764d3b2caaa98
7 files changed +20 -384
src/ext/Bal/dnchost/coreclrhost.h deleted
-137
@@ -1,137 +0,0 @@
1 -// Licensed to the .NET Foundation under one or more agreements.
2 -// The .NET Foundation licenses this file to you under the MIT license.
3 -// See the LICENSE file in the project root for more information.
4 -
5 -
6 -
7 -// ***** ABOUT THIS HEADER *****
8 -// **************************************************************************************
9 -//
10 -// This is the version on 2019-12-22 from
11 -// https://github.com/dotnet/runtime/blob/master/src/coreclr/src/coreclr/hosts/inc/coreclrhost.h
12 -//
13 -// **************************************************************************************
14 -// ****************************
15 -
16 -
17 -//
18 -// APIs for hosting CoreCLR
19 -//
20 -
21 -#ifndef __CORECLR_HOST_H__
22 -#define __CORECLR_HOST_H__
23 -
24 -#if defined(_WIN32) && defined(_M_IX86)
25 -#define CORECLR_CALLING_CONVENTION __stdcall
26 -#else
27 -#define CORECLR_CALLING_CONVENTION
28 -#endif
29 -
30 -// For each hosting API, we define a function prototype and a function pointer
31 -// The prototype is useful for implicit linking against the dynamic coreclr
32 -// library and the pointer for explicit dynamic loading (dlopen, LoadLibrary)
33 -#define CORECLR_HOSTING_API(function, ...) \
34 - extern "C" int CORECLR_CALLING_CONVENTION function(__VA_ARGS__); \
35 - typedef int (CORECLR_CALLING_CONVENTION *function##_ptr)(__VA_ARGS__)
36 -
37 -//
38 -// Initialize the CoreCLR. Creates and starts CoreCLR host and creates an app domain
39 -//
40 -// Parameters:
41 -// exePath - Absolute path of the executable that invoked the ExecuteAssembly (the native host application)
42 -// appDomainFriendlyName - Friendly name of the app domain that will be created to execute the assembly
43 -// propertyCount - Number of properties (elements of the following two arguments)
44 -// propertyKeys - Keys of properties of the app domain
45 -// propertyValues - Values of properties of the app domain
46 -// hostHandle - Output parameter, handle of the created host
47 -// domainId - Output parameter, id of the created app domain
48 -//
49 -// Returns:
50 -// HRESULT indicating status of the operation. S_OK if the assembly was successfully executed
51 -//
52 -CORECLR_HOSTING_API(coreclr_initialize,
53 - const char* exePath,
54 - const char* appDomainFriendlyName,
55 - int propertyCount,
56 - const char** propertyKeys,
57 - const char** propertyValues,
58 - void** hostHandle,
59 - unsigned int* domainId);
60 -
61 -//
62 -// Shutdown CoreCLR. It unloads the app domain and stops the CoreCLR host.
63 -//
64 -// Parameters:
65 -// hostHandle - Handle of the host
66 -// domainId - Id of the domain
67 -//
68 -// Returns:
69 -// HRESULT indicating status of the operation. S_OK if the assembly was successfully executed
70 -//
71 -CORECLR_HOSTING_API(coreclr_shutdown,
72 - void* hostHandle,
73 - unsigned int domainId);
74 -
75 -//
76 -// Shutdown CoreCLR. It unloads the app domain and stops the CoreCLR host.
77 -//
78 -// Parameters:
79 -// hostHandle - Handle of the host
80 -// domainId - Id of the domain
81 -// latchedExitCode - Latched exit code after domain unloaded
82 -//
83 -// Returns:
84 -// HRESULT indicating status of the operation. S_OK if the assembly was successfully executed
85 -//
86 -CORECLR_HOSTING_API(coreclr_shutdown_2,
87 - void* hostHandle,
88 - unsigned int domainId,
89 - int* latchedExitCode);
90 -
91 -//
92 -// Create a native callable function pointer for a managed method.
93 -//
94 -// Parameters:
95 -// hostHandle - Handle of the host
96 -// domainId - Id of the domain
97 -// entryPointAssemblyName - Name of the assembly which holds the custom entry point
98 -// entryPointTypeName - Name of the type which holds the custom entry point
99 -// entryPointMethodName - Name of the method which is the custom entry point
100 -// delegate - Output parameter, the function stores a native callable function pointer to the delegate at the specified address
101 -//
102 -// Returns:
103 -// HRESULT indicating status of the operation. S_OK if the assembly was successfully executed
104 -//
105 -CORECLR_HOSTING_API(coreclr_create_delegate,
106 - void* hostHandle,
107 - unsigned int domainId,
108 - const char* entryPointAssemblyName,
109 - const char* entryPointTypeName,
110 - const char* entryPointMethodName,
111 - void** delegate);
112 -
113 -//
114 -// Execute a managed assembly with given arguments
115 -//
116 -// Parameters:
117 -// hostHandle - Handle of the host
118 -// domainId - Id of the domain
119 -// argc - Number of arguments passed to the executed assembly
120 -// argv - Array of arguments passed to the executed assembly
121 -// managedAssemblyPath - Path of the managed assembly to execute (or NULL if using a custom entrypoint).
122 -// exitCode - Exit code returned by the executed assembly
123 -//
124 -// Returns:
125 -// HRESULT indicating status of the operation. S_OK if the assembly was successfully executed
126 -//
127 -CORECLR_HOSTING_API(coreclr_execute_assembly,
128 - void* hostHandle,
129 - unsigned int domainId,
130 - int argc,
131 - const char** argv,
132 - const char* managedAssemblyPath,
133 - unsigned int* exitCode);
134 -
135 -#undef CORECLR_HOSTING_API
136 -
137 -#endif // __CORECLR_HOST_H__
\ No newline at end of file
src/ext/Bal/dnchost/dnchost.cpp
-1
@@ -286,7 +286,6 @@ static HRESULT LoadManagedBootstrapperApplicationFactory(
286 hr = DnchostCreateFactory(
287 &pState->hostfxrState,
288 pState->sczBaFactoryAssemblyName,
289 - pState->sczBaFactoryAssemblyPath,
289 &pState->pAppFactory);
290
291 return hr;
src/ext/Bal/dnchost/dnchost.vcxproj
-1
@@ -63,7 +63,6 @@
63 </ItemGroup>
64
65 <ItemGroup>
66 - <ClInclude Include="coreclrhost.h" />
66 <ClInclude Include="dnchost.h" />
67 <ClInclude Include="dncutil.h" />
68 <ClInclude Include="precomp.h" />
src/ext/Bal/dnchost/dncutil.cpp
+19 -238
@@ -2,9 +2,7 @@
2
3 #include "precomp.h"
4
5 -#define DNC_ENTRY_TYPE "WixToolset.Dnc.Host.BootstrapperApplicationFactory"
5 #define DNC_ENTRY_TYPEW L"WixToolset.Dnc.Host.BootstrapperApplicationFactory"
7 -#define DNC_STATIC_ENTRY_METHOD "CreateBAFactory"
6 #define DNC_STATIC_ENTRY_METHODW L"CreateBAFactory"
7 #define DNC_STATIC_ENTRY_DELEGATEW L"WixToolset.Dnc.Host.StaticEntryDelegate"
8
@@ -29,23 +27,7 @@ static HRESULT InitializeHostfxr(
27 __in LPCWSTR wzRuntimeConfigPath
28 );
29 static HRESULT InitializeCoreClr(
32 - __in HOSTFXR_STATE* pState,
33 - __in LPCWSTR wzNativeHostPath
34 - );
35 -static HRESULT InitializeCoreClrPre5(
36 - __in HOSTFXR_STATE* pState,
37 - __in LPCWSTR wzNativeHostPath
38 - );
39 -static HRESULT LoadCoreClr(
40 - __in HOSTFXR_STATE* pState,
41 - __in LPCWSTR wzCoreClrPath
42 - );
43 -static HRESULT StartCoreClr(
44 - __in HOSTFXR_STATE* pState,
45 - __in LPCWSTR wzNativeHostPath,
46 - __in DWORD cProperties,
47 - __in LPCWSTR* propertyKeys,
48 - __in LPCWSTR* propertyValues
30 + __in HOSTFXR_STATE* pState
31 );
32
33
@@ -70,7 +52,7 @@ HRESULT DnchostLoadRuntime(
52 hr = InitializeHostfxr(pState, wzManagedHostPath, wzDepsJsonPath, wzRuntimeConfigPath);
53 BalExitOnFailure(hr, "Failed to initialize hostfxr.");
54
73 - hr = InitializeCoreClr(pState, wzNativeHostPath);
55 + hr = InitializeCoreClr(pState);
56 BalExitOnFailure(hr, "Failed to initialize coreclr.");
57
58 LExit:
@@ -80,7 +62,6 @@ LExit:
62 HRESULT DnchostCreateFactory(
63 __in HOSTFXR_STATE* pState,
64 __in LPCWSTR wzBaFactoryAssemblyName,
83 - __in LPCWSTR /*wzBaFactoryAssemblyPath*/,
65 __out IBootstrapperApplicationFactory** ppAppFactory
66 )
67 {
@@ -90,37 +71,20 @@ HRESULT DnchostCreateFactory(
71 LPWSTR sczEntryDelegate = NULL;
72 LPSTR sczBaFactoryAssemblyName = NULL;
73
93 - if (pState->pfnGetFunctionPointer)
94 - {
95 - hr = StrAllocFormatted(&sczEntryType, L"%ls,%ls", DNC_ENTRY_TYPEW, wzBaFactoryAssemblyName);
96 - BalExitOnFailure(hr, "Failed to format entry type.");
97 -
98 - hr = StrAllocFormatted(&sczEntryDelegate, L"%ls,%ls", DNC_STATIC_ENTRY_DELEGATEW, wzBaFactoryAssemblyName);
99 - BalExitOnFailure(hr, "Failed to format entry delegate.");
100 -
101 - hr = pState->pfnGetFunctionPointer(
102 - sczEntryType,
103 - DNC_STATIC_ENTRY_METHODW,
104 - sczEntryDelegate,
105 - NULL,
106 - NULL,
107 - reinterpret_cast<void**>(&pfnCreateBAFactory));
108 - BalExitOnFailure(hr, "Failed to create delegate through GetFunctionPointer.");
109 - }
110 - else
111 - {
112 - hr = StrAnsiAllocString(&sczBaFactoryAssemblyName, wzBaFactoryAssemblyName, 0, CP_UTF8);
113 - BalExitOnFailure(hr, "Failed to convert assembly name to UTF8: %ls", wzBaFactoryAssemblyName);
114 -
115 - hr = pState->pfnCoreclrCreateDelegate(
116 - pState->pClrHandle,
117 - pState->dwDomainId,
118 - sczBaFactoryAssemblyName,
119 - DNC_ENTRY_TYPE,
120 - DNC_STATIC_ENTRY_METHOD,
121 - reinterpret_cast<void**>(&pfnCreateBAFactory));
122 - BalExitOnFailure(hr, "Failed to create delegate in app domain.");
123 - }
74 + hr = StrAllocFormatted(&sczEntryType, L"%ls,%ls", DNC_ENTRY_TYPEW, wzBaFactoryAssemblyName);
75 + BalExitOnFailure(hr, "Failed to format entry type.");
76 +
77 + hr = StrAllocFormatted(&sczEntryDelegate, L"%ls,%ls", DNC_STATIC_ENTRY_DELEGATEW, wzBaFactoryAssemblyName);
78 + BalExitOnFailure(hr, "Failed to format entry delegate.");
79 +
80 + hr = pState->pfnGetFunctionPointer(
81 + sczEntryType,
82 + DNC_STATIC_ENTRY_METHODW,
83 + sczEntryDelegate,
84 + NULL,
85 + NULL,
86 + reinterpret_cast<void**>(&pfnCreateBAFactory));
87 + BalExitOnFailure(hr, "Failed to create delegate through GetFunctionPointer.");
88
89 *ppAppFactory = pfnCreateBAFactory();
90
@@ -182,9 +146,6 @@ static HRESULT LoadHostfxr(
146 pState->pfnHostfxrInitializeForApp = reinterpret_cast<hostfxr_initialize_for_dotnet_command_line_fn>(::GetProcAddress(hHostfxr, "hostfxr_initialize_for_dotnet_command_line"));
147 BalExitOnNullWithLastError(pState->pfnHostfxrInitializeForApp, hr, "Failed to get procedure address for hostfxr_initialize_for_dotnet_command_line.");
148
185 - pState->pfnHostfxrGetRuntimeProperties = reinterpret_cast<hostfxr_get_runtime_properties_fn>(::GetProcAddress(hHostfxr, "hostfxr_get_runtime_properties"));
186 - BalExitOnNullWithLastError(pState->pfnHostfxrGetRuntimeProperties, hr, "Failed to get procedure address for hostfxr_get_runtime_properties.");
187 -
149 pState->pfnHostfxrSetErrorWriter = reinterpret_cast<hostfxr_set_error_writer_fn>(::GetProcAddress(hHostfxr, "hostfxr_set_error_writer"));
150 BalExitOnNullWithLastError(pState->pfnHostfxrSetErrorWriter, hr, "Failed to get procedure address for hostfxr_set_error_writer.");
151
@@ -204,14 +165,7 @@ static void HOSTFXR_CALLTYPE DnchostErrorWriter(
165 __in LPCWSTR wzMessage
166 )
167 {
207 - BOOTSTRAPPER_LOG_LEVEL level = BOOTSTRAPPER_LOG_LEVEL_ERROR;
208 -
209 - if (CSTR_EQUAL == ::CompareString(LOCALE_INVARIANT, 0, wzMessage, -1, L"The requested delegate type is not available in the target framework.", -1))
210 - {
211 - level = BOOTSTRAPPER_LOG_LEVEL_DEBUG;
212 - }
213 -
214 - BalLog(level, "error from hostfxr: %ls", wzMessage);
168 + BalLog(BOOTSTRAPPER_LOG_LEVEL_ERROR, "error from hostfxr: %ls", wzMessage);
169 }
170
171 static HRESULT InitializeHostfxr(
@@ -241,8 +195,7 @@ LExit:
195 }
196
197 static HRESULT InitializeCoreClr(
244 - __in HOSTFXR_STATE* pState,
245 - __in LPCWSTR wzNativeHostPath
198 + __in HOSTFXR_STATE* pState
199 )
200 {
201 HRESULT hr = S_OK;
@@ -251,7 +204,7 @@ static HRESULT InitializeCoreClr(
204 if (InvalidArgFailure == hr || // old versions of hostfxr don't allow calling GetRuntimeDelegate from InitializeForApp.
205 HostApiUnsupportedVersion == hr) // hdt_get_function_pointer was added in .NET 5.
206 {
254 - hr = InitializeCoreClrPre5(pState, wzNativeHostPath);
207 + BalExitOnFailure(hr, "HostfxrGetRuntimeDelegate failed, most likely because the target framework is older than .NET 5.");
208 }
209 else
210 {
@@ -261,175 +214,3 @@ static HRESULT InitializeCoreClr(
214 LExit:
215 return hr;
216 }
264 -
265 -static HRESULT InitializeCoreClrPre5(
266 - __in HOSTFXR_STATE* pState,
267 - __in LPCWSTR wzNativeHostPath
268 - )
269 -{
270 - HRESULT hr = S_OK;
271 - int32_t rc = 0;
272 - LPCWSTR* rgPropertyKeys = NULL;
273 - LPCWSTR* rgPropertyValues = NULL;
274 - size_t cProperties = 0;
275 - LPWSTR* rgDirectories = NULL;
276 - UINT cDirectories = 0;
277 - LPWSTR sczCoreClrPath = NULL;
278 -
279 - // We are not using hostfxr as it was intended to be used. We need to initialize hostfxr so that it properly initializes hostpolicy -
280 - // there are pieces of the framework such as AssemblyDependencyResolver that won't work without that. We also need hostfxr to find a
281 - // compatible framework for framework-dependent deployed BAs. We had to use hostfxr_initialize_for_dotnet_command_line since
282 - // hostfxr_initialize_for_runtime_config doesn't currently (3.x) support self-contained deployed BAs. That means we're supposed to
283 - // start the runtime through hostfxr_run_app, but that method shuts down the runtime before returning. We actually want to call
284 - // hostfxr_get_runtime_delegate, but that method currently requires hostfxr to be initialized through
285 - // hostfxr_initialize_for_runtime_config. So we're forced to locate coreclr.dll and manually load the runtime ourselves.
286 -
287 - // Unfortunately, that's not the only problem. hostfxr has global state that tracks whether it started the runtime. While we keep our
288 - // hostfxr_handle open, everyone that calls the hostfxr_initialize_* methods will block until we have started the runtime through
289 - // hostfxr or closed our handle. If we close the handle, then hostfxr could potentially try to load a second runtime into the
290 - // process, which is not supported. We're going to just keep our handle open since no one else in the process should be trying to
291 - // start the runtime anyway.
292 -
293 - rc = pState->pfnHostfxrGetRuntimeProperties(pState->hostContextHandle, &cProperties, rgPropertyKeys, rgPropertyValues);
294 - if (HostApiBufferTooSmall != rc)
295 - {
296 - BalExitOnFailure(hr = rc, "HostfxrGetRuntimeProperties failed to return required size.");
297 - }
298 -
299 - rgPropertyKeys = static_cast<LPCWSTR*>(MemAlloc(sizeof(LPWSTR) * cProperties, TRUE));
300 - rgPropertyValues = static_cast<LPCWSTR*>(MemAlloc(sizeof(LPWSTR) * cProperties, TRUE));
301 - if (!rgPropertyKeys || !rgPropertyValues)
302 - {
303 - BalExitOnFailure(hr = E_OUTOFMEMORY, "Failed to allocate buffers for runtime properties.");
304 - }
305 -
306 - hr = pState->pfnHostfxrGetRuntimeProperties(pState->hostContextHandle, &cProperties, rgPropertyKeys, rgPropertyValues);
307 - BalExitOnFailure(hr, "HostfxrGetRuntimeProperties failed.");
308 -
309 - for (DWORD i = 0; i < cProperties; ++i)
310 - {
311 - if (CSTR_EQUAL == ::CompareString(LOCALE_INVARIANT, 0, rgPropertyKeys[i], -1, L"NATIVE_DLL_SEARCH_DIRECTORIES", -1))
312 - {
313 - hr = StrSplitAllocArray(&rgDirectories, &cDirectories, rgPropertyValues[i], L";");
314 - BalExitOnFailure(hr, "Failed to split NATIVE_DLL_SEARCH_DIRECTORIES '%ls'", rgPropertyValues[i]);
315 - }
316 - }
317 -
318 - for (DWORD i = 0; i < cDirectories; ++i)
319 - {
320 - Assert(rgDirectories);
321 -
322 - hr = PathConcat(rgDirectories[i], L"coreclr.dll", &sczCoreClrPath);
323 - BalExitOnFailure(hr, "Failed to allocate path to coreclr.");
324 -
325 - if (::PathFileExists(sczCoreClrPath))
326 - {
327 - break;
328 - }
329 - else
330 - {
331 - ReleaseNullStr(sczCoreClrPath);
332 - }
333 - }
334 -
335 - if (!sczCoreClrPath)
336 - {
337 - for (DWORD i = 0; i < cProperties; ++i)
338 - {
339 - BalLog(BOOTSTRAPPER_LOG_LEVEL_ERROR, "%ls: %ls", rgPropertyKeys[i], rgPropertyValues[i]);
340 - }
341 - BalExitWithRootFailure(hr, E_FILENOTFOUND, "Failed to locate coreclr.dll.");
342 - }
343 -
344 - hr = LoadCoreClr(pState, sczCoreClrPath);
345 - BalExitOnFailure(hr, "Failed to load coreclr.");
346 -
347 - hr = StartCoreClr(pState, wzNativeHostPath, (DWORD)cProperties, rgPropertyKeys, rgPropertyValues);
348 - BalExitOnFailure(hr, "Failed to start coreclr.");
349 -
350 -LExit:
351 - ReleaseMem(rgDirectories);
352 - ReleaseMem(rgPropertyValues);
353 - ReleaseMem(rgPropertyKeys);
354 - ReleaseStr(sczCoreClrPath);
355 -
356 - return hr;
357 -}
358 -
359 -static HRESULT LoadCoreClr(
360 - __in HOSTFXR_STATE* pState,
361 - __in LPCWSTR wzCoreClrPath
362 - )
363 -{
364 - HRESULT hr = S_OK;
365 - HMODULE hModule = NULL;
366 -
367 - hModule = ::LoadLibraryExW(wzCoreClrPath, NULL, LOAD_WITH_ALTERED_SEARCH_PATH);
368 - BalExitOnNullWithLastError(hModule, hr, "Failed to load coreclr.dll from '%ls'.", wzCoreClrPath);
369 -
370 - pState->pfnCoreclrInitialize = reinterpret_cast<coreclr_initialize_ptr>(::GetProcAddress(hModule, "coreclr_initialize"));
371 - BalExitOnNullWithLastError(pState->pfnCoreclrInitialize, hr, "Failed to get procedure address for coreclr_initialize.");
372 -
373 - pState->pfnCoreclrCreateDelegate = reinterpret_cast<coreclr_create_delegate_ptr>(::GetProcAddress(hModule, "coreclr_create_delegate"));
374 - BalExitOnNullWithLastError(pState->pfnCoreclrCreateDelegate, hr, "Failed to get procedure address for coreclr_create_delegate.");
375 -
376 -LExit:
377 - // Never unload the module since coreclr doesn't support it.
378 -
379 - return hr;
380 -}
381 -
382 -static HRESULT StartCoreClr(
383 - __in HOSTFXR_STATE* pState,
384 - __in LPCWSTR wzNativeHostPath,
385 - __in DWORD cProperties,
386 - __in LPCWSTR* propertyKeys,
387 - __in LPCWSTR* propertyValues
388 - )
389 -{
390 - HRESULT hr = S_OK;
391 - LPSTR szNativeHostPath = NULL;
392 - LPSTR* rgPropertyKeys = NULL;
393 - LPSTR* rgPropertyValues = NULL;
394 -
395 - rgPropertyKeys = static_cast<LPSTR*>(MemAlloc(sizeof(LPSTR) * cProperties, TRUE));
396 - rgPropertyValues = static_cast<LPSTR*>(MemAlloc(sizeof(LPSTR) * cProperties, TRUE));
397 - if (!rgPropertyKeys || !rgPropertyValues)
398 - {
399 - BalExitOnFailure(hr = E_OUTOFMEMORY, "Failed to allocate buffers for runtime properties.");
400 - }
401 -
402 - hr = StrAnsiAllocString(&szNativeHostPath, wzNativeHostPath, 0, CP_UTF8);
403 - BalExitOnFailure(hr, "Failed to convert module path to UTF8: %ls", wzNativeHostPath);
404 -
405 - for (DWORD i = 0; i < cProperties; ++i)
406 - {
407 - hr = StrAnsiAllocString(&rgPropertyKeys[i], propertyKeys[i], 0, CP_UTF8);
408 - BalExitOnFailure(hr, "Failed to convert property key to UTF8: %ls", propertyKeys[i]);
409 -
410 - hr = StrAnsiAllocString(&rgPropertyValues[i], propertyValues[i], 0, CP_UTF8);
411 - BalExitOnFailure(hr, "Failed to convert property value to UTF8: %ls", propertyValues[i]);
412 - }
413 -
414 - hr = pState->pfnCoreclrInitialize(szNativeHostPath, "MBA", cProperties, (LPCSTR*)rgPropertyKeys, (LPCSTR*)rgPropertyValues, &pState->pClrHandle, &pState->dwDomainId);
415 - BalExitOnFailure(hr, "CoreclrInitialize failed.");
416 -
417 -LExit:
418 - for (DWORD i = 0; i < cProperties; ++i)
419 - {
420 - if (rgPropertyKeys)
421 - {
422 - ReleaseStr(rgPropertyKeys[i]);
423 - }
424 -
425 - if (rgPropertyValues)
426 - {
427 - ReleaseStr(rgPropertyValues[i]);
428 - }
429 - }
430 - ReleaseMem(rgPropertyValues);
431 - ReleaseMem(rgPropertyKeys);
432 - ReleaseStr(szNativeHostPath);
433 -
434 - return hr;
435 -}
src/ext/Bal/dnchost/dncutil.h
-6
@@ -8,15 +8,10 @@ struct HOSTFXR_STATE
8 LPWSTR sczHostfxrPath;
9 hostfxr_handle hostContextHandle;
10 hostfxr_initialize_for_dotnet_command_line_fn pfnHostfxrInitializeForApp;
11 - hostfxr_get_runtime_properties_fn pfnHostfxrGetRuntimeProperties;
11 hostfxr_set_error_writer_fn pfnHostfxrSetErrorWriter;
12 hostfxr_close_fn pfnHostfxrClose;
13 hostfxr_get_runtime_delegate_fn pfnHostfxrGetRuntimeDelegate;
14 get_function_pointer_fn pfnGetFunctionPointer;
16 - coreclr_initialize_ptr pfnCoreclrInitialize;
17 - coreclr_create_delegate_ptr pfnCoreclrCreateDelegate;
18 - void* pClrHandle;
19 - UINT dwDomainId;
15 };
16
17 HRESULT DnchostLoadRuntime(
@@ -30,6 +25,5 @@ HRESULT DnchostLoadRuntime(
25 HRESULT DnchostCreateFactory(
26 __in HOSTFXR_STATE* pState,
27 __in LPCWSTR wzBaFactoryAssemblyName,
33 - __in LPCWSTR wzBaFactoryAssemblyPath,
28 __out IBootstrapperApplicationFactory** ppAppFactory
29 );
src/ext/Bal/dnchost/precomp.h
-1
@@ -27,6 +27,5 @@
27
28 #include <preqba.h>
29
30 -#include "coreclrhost.h"
30 #include "dncutil.h"
31 #include "dnchost.h"
src/wix/test/CompileCoreTestExtensionWixlib/CompileCoreTestExtensionWixlib.csproj
+1
@@ -7,6 +7,7 @@
7 <IsPackable>false</IsPackable>
8 <OutputType>Exe</OutputType>
9 <SignOutput>false</SignOutput>
10 + <RollForward>Major</RollForward>
11 </PropertyGroup>
12
13 <ItemGroup>