-
Notifications
You must be signed in to change notification settings - Fork 13
Description
Summary
The agora_rtc_sdk
NuGet package (version 4.2.1) causes ClickOnce deployment failures in .NET Framework 4.8 WPF applications due to invalid relative path entries in the application manifest for native extension DLLs.
I'm using the Voice Calling feature which works absolutely as expected when I'm in a debugging session from Visual Studio 2022.
Environment
- Package Version: agora_rtc_sdk 4.2.1
- Target Framework: .NET Framework 4.8
- Project Type: WPF Application
- Deployment Method: ClickOnce
- Visual Studio Version: 2022
- Windows Version: 10.0.26100.0
Error Details
System.Deployment.Application.InvalidDeploymentException (ManifestComponentSemanticValidation)
- File element .\libagora_video_quality_analyzer_extension.dll must have a relative path.
Full Error Log:
Exception reading manifest from file:///D:/PilotAppPublish/Application%20Files/PilotApp_1_1_1_3230/PilotApp.exe.manifest: the manifest may not be valid or the file could not be opened.
Application manifest is not semantically valid.
File element .\libagora_video_quality_analyzer_extension.dll must have a relative path.
Problematic DLLs
The following native DLLs cause ClickOnce manifest validation failures:
libagora_video_quality_analyzer_extension.dll
libagora_ai_echo_cancellation_extension.dll
libagora_ai_noise_suppression_extension.dll
libagora_spatial_audio_extension.dll
libagora_content_inspect_extension.dll
- And several other extension DLLs
Expected Behavior
ClickOnce deployment should complete successfully with all necessary Agora DLLs properly included in the application manifest with valid relative paths.
Actual Behavior
ClickOnce deployment fails during manifest generation/validation due to improper path handling of native extension DLLs.
Impact
- Blocks ClickOnce deployment for .NET Framework applications
- Affects enterprise applications that rely on ClickOnce for easy deployment and updates
Workaround Attempted
Tried excluding non-essential DLLs using MSBuild targets and PublishFile
exclusions, but the core issue persists with the manifest path validation.