# Changes between Version 23 and Version 24 of Documentation/DevelopmentCenter/CreateNewPluginUsingVS

Ignore:
Timestamp:
07/25/14 13:46:56 (8 years ago)
Comment:

--

### Legend:

Unmodified
 v23 * ..\..\bin for projects inside the trunk * ..\..\..\..\trunk\sources\bin\ for projects inside the branches directory * We typically use pre-build events for automatic versioning. This expects a Plugin.cs.frame and Properties\AssemblyInfo.cs.frame file to be present in your project (see below). It will replace the version placeholder with the SVN version and overwrite the respective .cs file. Note that you must at least add your code in the working copy for this to work. Typically, these are the pre-build commands: * We typically use pre-build events for automatic versioning. This expects a Plugin.cs.frame and Properties\AssemblyInfo.cs.frame file to be present in your project (see below "Create frame files"). Typically, this is the pre-build command: {{{ set Path=%Path%;$(ProjectDir);$(SolutionDir) === Create frame files === Each HeuristicLab plugin has two frame template files, AssemblyInfo.cs.frame and Plugin.cs.frame. We use these .frame files and SubWCRev to automatically convert those into .cs files and add the repository version number to the revision-version. * AssemblyInfo.cs.frame * AssemblyVersion --> if this one changes all dependent plugins must be rebuilt as well, should be set to e.g. 3.3.0.0 and touched only again when major or minor version changes * AssemblyFileVersion --> not relevant for build process, should be set to e.g. 3.3.10.$WCREV$ * AssemblyInfo.cs.frame --> create by duplicating AssemblyInfo.cs * Make sure AssemblyTitle, AssemblyDescription, etc. are all set * AssemblyVersion --> should be set to e.g. 3.3.0.0 and touched only when major or minor version changes * AssemblyFileVersion --> should be set to e.g. 3.3.10.$WCREV$ * Plugin.cs.frame * Used to replace your plugin version number with the build number on SVN commit, e.g. 3.3.10.$WCREV$ === Configuring the plugin file === * Plugin attribute [Plugin("HeuristicLab.Problems.Mine", "3.3.0.$WCREV$")] * PluginDependencies --> Please make sure that you list all referenced plugins. There is a unit test that checks if you have included all or if you have specified too many * Version numbers: Major and minor must be set for all plugins, e.g. 3.3 or 3.4 * Plugin attribute, e.g. [Plugin("HeuristicLab.Problems.Mine", "Description of my problem", "3.3.10.$WCREV$")] * PluginDependencies --> Please make sure that you list all referenced plugins. There is a unit test that checks if you have included all or if you have specified too many (your plugin must be referenced by the unit test project) * Version numbers: Major and minor must be used for HeuristicLab plugins, e.g. 3.3 or 3.4, additional version information may be required for some external libraries, e.g. [PluginDependency("HeuristicLab.ALGLIB", "3.7.0")] === Trunk integration ===