diff options
| author | Staffan Gustafsson <staffangu@outlook.com> | 2022-11-30 17:15:12 +0100 |
|---|---|---|
| committer | Sean Hall <r.sean.hall@gmail.com> | 2023-01-18 18:10:56 -0600 |
| commit | 853887b4e84df1965794802b7683f3a9aca3e930 (patch) | |
| tree | c2db272b63381c94186712c0029ed0e000ec3391 /src/ext/NetFx/be/netfxsearch.cpp | |
| parent | 9f368d76848e31d21ec3c193fa8c92849b1362a1 (diff) | |
| download | wix-853887b4e84df1965794802b7683f3a9aca3e930.tar.gz wix-853887b4e84df1965794802b7683f3a9aca3e930.tar.bz2 wix-853887b4e84df1965794802b7683f3a9aca3e930.zip | |
Adding support for DotNetCoreSdkSearch and DotNetCoreSdkCompatibilityCheck
Diffstat (limited to 'src/ext/NetFx/be/netfxsearch.cpp')
| -rw-r--r-- | src/ext/NetFx/be/netfxsearch.cpp | 25 |
1 files changed, 21 insertions, 4 deletions
diff --git a/src/ext/NetFx/be/netfxsearch.cpp b/src/ext/NetFx/be/netfxsearch.cpp index 3c12161d..671e7546 100644 --- a/src/ext/NetFx/be/netfxsearch.cpp +++ b/src/ext/NetFx/be/netfxsearch.cpp | |||
| @@ -15,7 +15,7 @@ STDMETHODIMP NetfxSearchParseFromXml( | |||
| 15 | BSTR bstrNodeName = NULL; | 15 | BSTR bstrNodeName = NULL; |
| 16 | 16 | ||
| 17 | // Select Netfx search nodes. | 17 | // Select Netfx search nodes. |
| 18 | hr = XmlSelectNodes(pixnBundleExtension, L"NetFxNetCoreSearch", &pixnNodes); | 18 | hr = XmlSelectNodes(pixnBundleExtension, L"NetFxNetCoreSearch|NetFxNetCoreSdkSearch", &pixnNodes); |
| 19 | BextExitOnFailure(hr, "Failed to select Netfx search nodes."); | 19 | BextExitOnFailure(hr, "Failed to select Netfx search nodes."); |
| 20 | 20 | ||
| 21 | // Get Netfx search node count. | 21 | // Get Netfx search node count. |
| @@ -50,18 +50,32 @@ STDMETHODIMP NetfxSearchParseFromXml( | |||
| 50 | { | 50 | { |
| 51 | pSearch->Type = NETFX_SEARCH_TYPE_NET_CORE_SEARCH; | 51 | pSearch->Type = NETFX_SEARCH_TYPE_NET_CORE_SEARCH; |
| 52 | 52 | ||
| 53 | auto& netCoreSearch = pSearch->NetCoreSearch; | ||
| 53 | // @RuntimeType | 54 | // @RuntimeType |
| 54 | hr = XmlGetAttributeUInt32(pixnNode, L"RuntimeType", reinterpret_cast<DWORD*>(&pSearch->NetCoreSearch.runtimeType)); | 55 | hr = XmlGetAttributeUInt32(pixnNode, L"RuntimeType", reinterpret_cast<DWORD*>(&netCoreSearch.runtimeType)); |
| 55 | BextExitOnFailure(hr, "Failed to get @RuntimeType."); | 56 | BextExitOnFailure(hr, "Failed to get @RuntimeType."); |
| 56 | 57 | ||
| 57 | // @Platform | 58 | // @Platform |
| 58 | hr = XmlGetAttributeUInt32(pixnNode, L"Platform", reinterpret_cast<DWORD*>(&pSearch->NetCoreSearch.platform)); | 59 | hr = XmlGetAttributeUInt32(pixnNode, L"Platform", reinterpret_cast<DWORD*>(&netCoreSearch.platform)); |
| 59 | BextExitOnFailure(hr, "Failed to get @Platform."); | 60 | BextExitOnFailure(hr, "Failed to get @Platform."); |
| 60 | 61 | ||
| 61 | // @MajorVersion | 62 | // @MajorVersion |
| 62 | hr = XmlGetAttributeEx(pixnNode, L"MajorVersion", &pSearch->NetCoreSearch.sczMajorVersion); | 63 | hr = XmlGetAttributeEx(pixnNode, L"MajorVersion", &netCoreSearch.sczMajorVersion); |
| 63 | BextExitOnFailure(hr, "Failed to get @MajorVersion."); | 64 | BextExitOnFailure(hr, "Failed to get @MajorVersion."); |
| 64 | } | 65 | } |
| 66 | else if (CSTR_EQUAL == ::CompareStringW(LOCALE_INVARIANT, 0, bstrNodeName, -1, L"NetFxNetCoreSdkSearch", -1)) | ||
| 67 | { | ||
| 68 | pSearch->Type = NETFX_SEARCH_TYPE_NET_CORE_SDK_SEARCH; | ||
| 69 | |||
| 70 | auto& netCoreSdkSearch = pSearch->NetCoreSdkSearch; | ||
| 71 | // @Platform | ||
| 72 | hr = XmlGetAttributeUInt32(pixnNode, L"Platform", reinterpret_cast<DWORD*>(&netCoreSdkSearch.platform)); | ||
| 73 | BextExitOnFailure(hr, "Failed to get @Platform."); | ||
| 74 | |||
| 75 | // @Version | ||
| 76 | hr = XmlGetAttributeEx(pixnNode, L"Version", &netCoreSdkSearch.sczVersion); | ||
| 77 | BextExitOnFailure(hr, "Failed to get @Version."); | ||
| 78 | } | ||
| 65 | else | 79 | else |
| 66 | { | 80 | { |
| 67 | BextExitWithRootFailure(hr, E_UNEXPECTED, "Unexpected element name: %ls", bstrNodeName); | 81 | BextExitWithRootFailure(hr, E_UNEXPECTED, "Unexpected element name: %ls", bstrNodeName); |
| @@ -115,6 +129,9 @@ STDMETHODIMP NetfxSearchExecute( | |||
| 115 | case NETFX_SEARCH_TYPE_NET_CORE_SEARCH: | 129 | case NETFX_SEARCH_TYPE_NET_CORE_SEARCH: |
| 116 | hr = NetfxPerformDetectNetCore(wzVariable, pSearch, pEngine, wzBaseDirectory); | 130 | hr = NetfxPerformDetectNetCore(wzVariable, pSearch, pEngine, wzBaseDirectory); |
| 117 | break; | 131 | break; |
| 132 | case NETFX_SEARCH_TYPE_NET_CORE_SDK_SEARCH: | ||
| 133 | hr = NetfxPerformDetectNetCoreSdk(wzVariable, pSearch, pEngine, wzBaseDirectory); | ||
| 134 | break; | ||
| 118 | default: | 135 | default: |
| 119 | hr = E_UNEXPECTED; | 136 | hr = E_UNEXPECTED; |
| 120 | } | 137 | } |
