I’m guessing you’re talking about .Net8 Zatca.eInvoice.SDK.dll
From my testing, v3.3.5 requires external resources as you mentioned.
I did a little patch on .Net8 Zatca.eInvoice.SDK.dll for this issue
From this
relativePathKSA = @"..\..\..\Data\Rules\schematrons\20210819_ZATCA_E-invoice_Validation_Rules.xsl";
KSA_Schematrons = File.ReadAllText(Path.GetFullPath(Path.Combine(AppDomain.get_CurrentDomain().get_BaseDirectory(), relativePathKSA)));
relativePathEN = @"..\..\..\Data\Rules\schematrons\CEN-EN16931-UBL.xsl";
EN_Schematrons = File.ReadAllText(Path.GetFullPath(Path.Combine(AppDomain.get_CurrentDomain().get_BaseDirectory(), relativePathEN)));
to
relativePathKSA = @"Data\Rules\schematrons\20210819_ZATCA_E-invoice_Validation_Rules.xsl";
KSA_Schematrons = File.ReadAllText(Path.GetFullPath(Path.Combine(AppDomain.get_CurrentDomain().get_BaseDirectory(), relativePathKSA)));
relativePathEN = @"Data\Rules\schematrons\CEN-EN16931-UBL.xsl";
EN_Schematrons = File.ReadAllText(Path.GetFullPath(Path.Combine(AppDomain.get_CurrentDomain().get_BaseDirectory(), relativePathEN)));
and made sure all the required resources were copied to the location of the Exe file with
<Target Name="PostBuild" AfterTargets="PostBuildEvent">
<Exec Command="xcopy "$(ProjectDir)ikvm" "$(TargetDir)ikvm\" /E /I /Y" />
<Exec Command="xcopy "$(ProjectDir)Data" "$(TargetDir)Data\" /E /I /Y" />
</Target>
<Target Name="PostPublish" AfterTargets="Publish">
<Exec Command="xcopy "$(ProjectDir)ikvm" "$(PublishDir)ikvm\" /E /I /Y" />
<Exec Command="xcopy "$(ProjectDir)Data" "$(PublishDir)Data\" /E /I /Y" />
</Target>
In my c# Project file.
Work well on Windows OS.
ikvm folder should from Test Folder zatca-einvoicing-sdk-238-R3.3.5\Lib\Dot-Net8\Test