Il comando che usavo:
RegAsm.exe mypath\mydll.dll
fa sì che il sistema operativo cerchi la libreria mydll nella GAC (global assembly cache).
La mia applicazione referenzia l'instanza di mydll contenuta nella stessa cartella di lavoro, e perciò non la trova.
Per far sì che mydll venga referenziata correttamente bisogna aggiungere lo switch /codebase:
RegAsm.exe /codebase mypath\mydll.dll
Il parametro codebase registra mydll con l'intero path, rendendola accessibile da qualunque locazione.
Per distribuire correttamente la libreria con InnoSetup:
[Run]
Filename: "{dotnet40}\RegAsm.exe";
Parameters: /codebase mydll.dll; WorkingDir:
{app};