in

UGISS Community

Il sito della community dello User Group Italiano di SQL Server

Visual Studio 2005 e progetti SQL Server 2005

Last post 10-26-2007 15.42 by s.greci. 1 replies.
Page 1 of 1 (2 items)
Sort Posts: Previous Next
  • 10-26-2007 9.02

    • mandu
    • Top 50 Contributor
    • Joined on 06-04-2007
    • Posts 9
    • Points 145

    Visual Studio 2005 e progetti SQL Server 2005

    Ciao a tutti, 

    sto sviluppando un progetto da visual studio 2005 per eseguire il deploy di una mia funzione utente in SQL 2005.
     
    Se la funzione utente deve fare uso di un'altra mia dll sviluppata sempre con VStudio 2005, come posso referenziarla nel progetto SQL ("add reference") visto che questo accetta solo progetti di tipo sql?

    Grazie e ciao

    Emanuele

    • Post Points: 20
  • 10-26-2007 15.42 In reply to

    • s.greci
    • Top 25 Contributor
      Male
    • Joined on 05-16-2007
    • Alba (CN)
    • Posts 101
    • Points 1.020

    Re: Visual Studio 2005 e progetti SQL Server 2005

    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" />

    Simone Greci
    SQL Server MCP, MCTS
    http://community.ugiss.org/blogs/s.greci/
    BI Specialist @ Solid Quality Learning Italy
    Filed under:
    • Post Points: 5
Page 1 of 1 (2 items)
(C) 2007 User Group Italiano di SQL Server