Referencing libraries and scripts¶
C# scripts can reference other scripts and dlls. Here's how...
A default set of references and usings is included automatically but you can add your own as well. For example, the
System.IO.Compression assembly isn't referenced by default. Here's how you can include it to use the
#r "System.IO.Compression" //add reference (the dll is in the GAC) using System.IO.Compression; //include namespace string startPath = @"c:\example\start"; string zipPath = @"c:\example\result.zip"; ZipFile.CreateFromDirectory(startPath, zipPath);
#r directive adds a reference to the specified assembly.
Here are some examples of how to use it:
#r "System.IO.Compression"- reference an assembly from the GAC
#r "MyLib.dll"- reference an assembly from the same folder as the current workbook
#r "C:\packages\lib.dll"- reference a dll by absolute path
#r "\\serverA\packages\lib.dll"- reference a dll on a network share
- Support for NuGet is planned but not yet available.
- You can customize included references and usings in custom connections.
When defining general purpose functions and classes, it can be useful to put them in their own script files. We can reference them using the
Here are some examples:
#load "c:\mycode\class123.csx"load a script form a local file
#load "\\server\scripts\demo.csx"load a script form a network share
#load "my script"load an embedded script from the current workbook
#load "my folder\my script"load an embedded script inside a folder in the current workbook
#load directive accepts absolute paths and network shares, but it also accepts embedded scripts, as shown below:
In the example above, the class
MyCustomClass is defined in an embedded script called my script. When we load the script we can access the
MyCustomClass type contained inside.