Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

This is the default way of making a solution and the plugin csprojs that come along. Of course, you can do this in visual studio. The csproj that you add should be a class library, because we are going to make a plugin and the plugin is a dll that will be loaded by Delta Shell.

Warning

Set your C# projects to the .NET Framework 4 version

 

Download the Delta Shell SDK

...

You can also make a unit test project that works in Delta Shell. To do so, install the DeltaShell.TestProject package into your test project. Take notice of the Default Project in the Package Manager Console, because you want the DeltaShell.TestProject to be in your test project and not in your application plugin project.

Adding dll references

...

Creating an ApplicationPlugin derivative

Now that your project is ready to work with, you can add your first class, that will be an ApplicationPlugin. How to actually write the rest of an ApplicationPlugin will be explained in another tutorial.

Code Block
languagec#
namespace DeltaShell.Plugins.Unibest
{
    [Extension(typeof(IPlugin))]
    public class UnibestApplicationPlugin : ApplicationPlugin
    {
    }
}

Now you are almost ready to compile.

Setting up compilation

It is super-duper very important to remember the following:

Warning

You must always set the references to framework dll's to copy-local=False. This also accounts for Mono.Addings and other dll's that are automatically added to the project.

Why, you ask? Because they are already being copied into $(SolutionDir)\bin\DeltaShell and don't need to be in your own assembly's output folder.

Warning

You must always set the references to other project to copy-local=False

Why, you ask? Because they already have their own output folder and you don't want these dlls to be doubled in your bin directory.

 

Now you may press the compile button. Have a look in your bin folder next to your solution folder. You will see that there are two folders. One is for the framework, the other contains all the plugins.

Verify your build output

You can find your own dll in bin\$(Configuration)\plugins\$(AssemblyName).

Your test project is compiled into the bin folder directly, because it has to know about the plugins and the framework. This may look a bit odd, but we are still looking for a good workaround for that. There will also be a folder called test-data that contains a symbolic link. This will be explained later in this tutorial.

Info

Always take notice that your plugin folder only contains the dlls you expect. And always take notice that $(SolutionDir)bin\$(Configuration) only contains test dlls and test utils dlls.