Ciao Emanuele,
in un progetto SQLCLR è possibile referenziare un'assembly esterno utilizzando un piccolo "trucchetto". Vediamo come:
/*errata corrige*/
1) Assicurarsi che la dll esterna sia decorata con l'attributo [assembly: AllowPartiallyTrustedCallers] nel file AssemblyInfo.cs, solo se l'assembly è stata strongly signed.
/*errata corrige*/
2) modificare con un qualsias editor il file .csproj del nostro progetto CLR aggiungendo nella sezione <ItemGroup> un tag di questo genere:
<Reference Include="MyAssembly" >
<SpecificVersion>False</SpecificVersion>
<HintPath>C:\Projects\MyAssembly\bin\Debug\MyAssembly.dll</HintPath>
</Reference>
3) Caricare a mano su SQL Server la tua dll, utilizzando un comando CREATE ASSEMBLY:
CREATE ASSEMBLY [SqlServerProject2]
AUTHORIZATION [dbo]
FROM 'C:\Projects\MyAssembly\bin\Debug\MyAssembly.dll'
WITH PERMISSION_SET = SAFE
4) Effettuare il deploy del tuo progetto SQLCLR utilizzando Visual Studio oppure caricandola con lo statement CREATE ASSEMBLY.
Se poi volessimo evitare di referenziare all'interno del progetto CLR una dll utilizzando un path fisico ("C:\Projects\MyAssembly\bin\Debug\MyAssembly.dll") possiamo pensare di firmare l'assembly con uno strong name e registrarla nella GAC, così da referenziare la dll semplicemente con:
<Reference Include="MyAssembly" />