You need to exclude the problematic method or class from obfuscation.
If I remember well,
SmartAssembly offers several methods for merging dll's, you can also try another method.
If that does not work exclude the misbehaving dll from SmartAssembly.
Alternatives are using ILmerge utility or Fody Costura:
Mike Barnett at Microsoft Research[
^]
GitHub - Fody/Fody: Extensible tool for weaving .net assemblies[
^]
ILmerge example:
ilmerge /target:winexe /out:SelfContainedProgram.exe Program.exe ClassLibrary1.dll ClassLibrary2.dll
Also see:
Merging .NET assemblies using ILMerge[
^]
----------------------------------------------------------------------------------
Another example which keeps the name of the .exe the same:
Put ILMerge in a folder ILMerge in your solution.
Define a
Post-Build event:
On the Project menu, click Properties.
Select the Build Events tab.
In the Post-build event command line box, type your commands
Example:
"$(SolutionDir)\ILMerge\ILMerge.exe" /target:winexe /out:wessam.exe WindowsFormsApplication1.exe Microsoft.ReportViewer.Common.dll Microsoft.ReportViewer.DataVisualization.dll Microsoft.ReportViewer.ProcessingObjectModel.dll Microsoft.ReportViewer.WinForms.dll
DEL WindowsFormsApplication1.exe
REN wessam.exe WindowsFormsApplication2.exe
----------------------------------------------------------------------------------
I think this article has a solution for your
ILMerge problem:
Adding DOC, RTF, and OOXML Export Formats to the Microsoft Report Viewer Control[
^]