diff --git a/csharp/src/Microsoft.ML.OnnxRuntime/SessionOptions.shared.cs b/csharp/src/Microsoft.ML.OnnxRuntime/SessionOptions.shared.cs
index 57e0942a3b..7590299000 100644
--- a/csharp/src/Microsoft.ML.OnnxRuntime/SessionOptions.shared.cs
+++ b/csharp/src/Microsoft.ML.OnnxRuntime/SessionOptions.shared.cs
@@ -369,16 +369,16 @@ namespace Microsoft.ML.OnnxRuntime
///
- /// Append SNPE or XNNPACK execution provider
+ /// Append QNN, SNPE or XNNPACK execution provider
///
- /// Execution provider to add. 'SNPE' or 'XNNPACK' are currently supported.
+ /// Execution provider to add. 'QNN', 'SNPE' or 'XNNPACK' are currently supported.
/// Optional key/value pairs to specify execution provider options.
public void AppendExecutionProvider(string providerName, Dictionary providerOptions = null)
{
- if (providerName != "SNPE" && providerName != "XNNPACK")
+ if (providerName != "SNPE" && providerName != "XNNPACK" && providerName != "QNN")
{
throw new NotSupportedException(
- "Only SNPE and XNNPACK execution providers can be enabled by this method.");
+ "Only QNN, SNPE and XNNPACK execution providers can be enabled by this method.");
}
if (providerOptions == null)
diff --git a/csharp/test/Microsoft.ML.OnnxRuntime.Tests.Common/InferenceTest.cs b/csharp/test/Microsoft.ML.OnnxRuntime.Tests.Common/InferenceTest.cs
index 7d4e3df25f..61205b7412 100644
--- a/csharp/test/Microsoft.ML.OnnxRuntime.Tests.Common/InferenceTest.cs
+++ b/csharp/test/Microsoft.ML.OnnxRuntime.Tests.Common/InferenceTest.cs
@@ -148,6 +148,12 @@ namespace Microsoft.ML.OnnxRuntime.Tests
ex = Assert.Throws(() => { opt.AppendExecutionProvider("SNPE"); });
Assert.Contains("SNPE execution provider is not supported in this build", ex.Message);
#endif
+#if USE_QNN
+ opt.AppendExecutionProvider("QNN");
+#else
+ ex = Assert.Throws(() => { opt.AppendExecutionProvider("QNN"); });
+ Assert.Contains("QNN execution provider is not supported in this build", ex.Message);
+#endif
opt.AppendExecutionProvider_CPU(1);
}