Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Migration of unmigrated content due to installation of a new plugin

DelftShell now uses a custom build file (DelftShell.Taget) to copy necessary dlls and invoke postsharp when necessary. This means that when you create a new Assembly you have to set up some additional properties in the .csproj file.

Setting up a new project file

It is important to include these steps when you a add a new project to DelftShell (maybe we can make a template of this??). You have to make some modifications to the .csproj file by editing it in a text editor.

...

IsPluginComponent makes sure the output of the assembly is copied to the 'loader'.
PluginName is the name of plugin project.
UsePostSharp determines if PostSharp is invoked on the dll.

What does DelftShell.Targets file do?

1 Invoke PostSharp on the assembly if necessary. This is done by calling PostSharpPostBuild.cmd for the project.
2 If the project is a PluginComponent it copies the output of the project (the dll) to \loader\bin\plugins\$PluginName\
3 If the project is a PluginComponent it copies the referenced libararies of the project to \loader\bin\plugins\$PluginName\. The location of these files is relative to the project folder. For example:

...

The last two steps are done by calling PluginPostBuild.cmd

Location of the build files

\DelftShell.Targets : $SolutionDir\build
\PluginPostBuild.cmd: $SolutionDir\bin
\PostSharpPostBuild.cmd: $SolutionDir\bin