locked
RTM Known Issue: My UWP application fails WACK compliance testing with output saying I’m using APIs that I am certain my code doesn’t reference. RRS feed

  • Question

  • Errors like: 

    • Error Found: The supported APIs test detected the following errors:
      • API ExecuteAssembly in uwphost.dll is not supported for this application type. MyApp.exe calls this API.
      • API DllGetActivationFactory in uwphost.dll is not supported for this application type. MyApp.exe has an export that forwards to this API.
      • API OpenSemaphore in api-ms-win-core-synch-l1-1-0.dll is not supported for this application type. System.Threading.dll calls this API.
      • API CreateSemaphore in api-ms-win-core-kernel32-legacy-l1-1-0.dll is not supported for this application type. System.Threading.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: 

    Friday, August 7, 2015 1:13 AM
    Moderator

Answers

  • For UWP projects, building using the .NET Native toolchain is the default behavior for RELEASE builds but not DEBUG builds. You can hit this error if your build runs the WACK tools against DEBUG builds as a custom step or you don’t have the .NET Native toolchain enabled for your RELEASE builds. This can happen if you have by unchecking the Enable for .Net Native checkbox in your project properties.

    Friday, August 7, 2015 1:14 AM
    Moderator

All replies

  • For UWP projects, building using the .NET Native toolchain is the default behavior for RELEASE builds but not DEBUG builds. You can hit this error if your build runs the WACK tools against DEBUG builds as a custom step or you don’t have the .NET Native toolchain enabled for your RELEASE builds. This can happen if you have by unchecking the Enable for .Net Native checkbox in your project properties.

    Friday, August 7, 2015 1:14 AM
    Moderator
  • Errors like: 

    • Error Found: The supported APIs test detected the following errors:
      • API ExecuteAssembly in uwphost.dll is not supported for this application type. MyApp.exe calls this API.
      • API DllGetActivationFactory in uwphost.dll is not supported for this application type. MyApp.exe has an export that forwards to this API.
      • API OpenSemaphore in api-ms-win-core-synch-l1-1-0.dll is not supported for this application type. System.Threading.dll calls this API.
      • API CreateSemaphore in api-ms-win-core-kernel32-legacy-l1-1-0.dll is not supported for this application type. System.Threading.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: 



    I have the same error from an App Studio project, what do I do?
    Friday, August 7, 2015 7:01 PM
  • You should ensure that you're not running the WACK tooling against builds of your project that aren't enabled for .NET Native. One thing to do is check your build output for a to ILC.exe (the .NET Native compiler). If there isn't one it's likely that your project isn't enabled for .NET Native. There should be a checkbox in the project build properties that will allow you to enable this requirement.

    Tuesday, August 11, 2015 10:31 PM
    Moderator