I tried to package a windows app with release mode, but two tests failed:
1.Binary analyzer failed
Binary analyzer
•Error Found: The binary analyzer test detected the following errors:
◦File C:\Program Files\WindowsApps\***_1.0.0.0_x64__2qz35x103g***\clrcompression.dll has failed the AppContainerCheck check.
◦File C:\Program Files\WindowsApps\***.MStube_1.0.0.0_x64__2qz35x103g***\clrjit.dll has failed the AppContainerCheck check.
•Impact if not fixed: If the app doesn’t use the available Windows protections, it can increase the vulnerability of the customer's computer to malware.
•How to fix: Apply the required linker options - SAFESEH, DYNAMICBASE, NXCOMPAT, and APPCONTAINER - when you link the app. See links below for more information:
2. Supported API test failed
•Error Found: The supported APIs test detected the following errors:
◦API RtlCaptureContext in api-ms-win-core-rtlsupport-l1-1-0.dll is not supported for this application type. clrcompression.dll calls this API.
◦API RtlVirtualUnwind in api-ms-win-core-rtlsupport-l1-1-0.dll is not supported for this application type. clrcompression.dll calls this API.
◦API _XcptFilter in msvcrt.dll is not supported for this application type. clrcompression.dll calls this API.
◦API __C_specific_handler in msvcrt.dll is not supported for this application type. clrcompression.dll calls this API.
◦API _amsg_exit in msvcrt.dll is not supported for this application type. clrcompression.dll calls this API.
◦API _initterm in msvcrt.dll is not supported for this application type. clrcompression.dll calls this API.
◦API free in msvcrt.dll is not supported for this application type. clrcompression.dll calls this API.
◦API malloc in msvcrt.dll is not supported for this application type. clrcompression.dll calls this API.
◦API memcpy in msvcrt.dll is not supported for this application type. clrcompression.dll calls this API.
◦API memset in msvcrt.dll is not supported for this application type. clrcompression.dll calls this API.
•Impact if not fixed: Using an API that is not part of the Windows SDK for Windows Store apps violates the Windows Store certification requirements.
•How to fix: Review the error messages to identify the API that is not part of the Windows SDK for Windows Store apps. Please note, C++ apps that are built in a debug configuration will fail this test even if it only uses APIs from the Windows SDK for Windows Store apps. See the link below for more information:
Alternatives to Windows APIs in Windows Store apps.
I have no ways to solve them...How to fix the two errors to make sure my application could be packaged correctly?
Thanks.
The "clrjit.dll" should not exist in the output directory (e.g. "bin/x64/Release") or inside appx package for the Store submission.
You need to make sure that:
Note that "clrcompression.dll" by itself is fine, and will pass certification.
Hope this saves you a few agonizing hours. Downgrading NetCore is not a solution.
When I downgrade NetCore.UWP version from 5.2.2 to 5.1.0, the problems with clrcompression.dll disappeared.
I also have Microsoft.NETCore.UniversalWindowsPlatform 6.1.9 and having the same issue.
Yes, .net
native toolchain is checked. I try x86 and x64 and it doesn't work - my output directory always contains clrjit.dll
and clrcompression.dll
.
I don't have a reference to EntityFramework in any of my code so I'm not sure that's the problem I'm hitting.
The corefx link above has a link to a new issue in it - https://github.com/dotnet/corefx/issues/30594
Apparently Microsoft.NETCore.Portable.Compatibility is no longer needed with newer versions of Microsoft.NETCore.UniversalWindowsPlatform.
Removing Microsoft.NETCore.Portable.Compatibility has fixed my issue.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With