一步一步掌握SD3,动态加入一个插件

 

制作一个SD的插件,SD的插件是由两个文件组成的即*.dll,*.addin
*.addin文件主要集中放在addin目录下, 

我们来看一下,一个插件的.addin文件

<AddIn name        = "cxyMenu"
       author      = "Administrator"
       url         = "http://www.sunhshine.com"
       description = "to show a messageBox here">

    <Manifest>
        <!-- unique name of the AddIn, used when others AddIns want to reference this AddIn -->
        <Identity name="SharpMenu" version = "@SharpMenu.dll"/>
        <Dependency addin="cxysharp" version="1.0"/>
    </Manifest>

    <Runtime>
        <Import assembly="SharpMenu.dll"/>
    </Runtime>

    <Path name = "/Workspace/Tools">
        <MenuItem id = "cxyMenuCommand1"
                  label = "cxyMenu"
                  class = "SharpMenu.ToolCommand1"
        />
    </Path>
</AddIn>

addIn name:插件管理器中显示的名字,
author:作者
url:发布这个插件的网站,在右击这个插件的时候,在快捷菜单中将出现转到主页这个菜单项
description:插件功能的描述

Manifest:
identity name:这里是在SD的整个插件系统中唯一用来标识这个插件的名字
Version:版本号
Dependency:这个插件用到的依赖插件

Runtime:
Import assembly:运行时需要动态加载的dll文件,及路径

Path:
name:这个命令将出现在那个菜单栏下面

MenuItem中的项解释见上一篇文章

DLL类文件

功能很简单,就不在这里说了,代码如下:

using System;
using System.Collections.Generic;
using ICSharpCode.Core;
using System.Windows.Forms;

namespace SharpMenu
...{
    public class ToolCommand1 : AbstractMenuCommand
    ...{
        public override void Run()
        ...{
            MessageBox.Show("我被点了");
        }
    }
}

安装这个插件:
将.addin拷到addins文件夹下面
将dll放到.addin中指定的位置处,这样,这个插件就成为一个内置的插件了

当然也可以通过addinmanger来安装这个插件

时间: 2024-11-05 19:00:35

一步一步掌握SD3,动态加入一个插件的相关文章

一步一步学ROP之linux_x64篇

一步一步学ROP之linux_x64篇 一.序 **ROP的全称为Return-oriented programming(返回导向编程),这是一种高级的内存攻击技术可以用来绕过现代操作系统的各种通用防御(比如内存不可执行和代码签名等).上次我们主要讨论了linux_x86的ROP攻击:<一步一步学ROP之linux_x86篇>,在这次的教程中我们会带来上一篇的补充以及linux_x64方面的ROP利用方法,欢迎大家继续学习. 另外文中涉及代码可在我的github下载:https://githu

一步一步SEO 之 准备工作

Normal 0 7.8 磅 0 2 false false false MicrosoftInternetExplorer4 写在前面的话 SEO ,对大多人来说是个有意思的话题,不过似乎只要和搜索引擎沾边的话题都是有意思的,谁让现在搜索引擎火那.对于绝大多数中小网站管理者来说,想推广,就想到 SEO , SEO 似乎是一道神秘的灵符,只要用上它,可以保证我们的网站一夜之间流量直线上升,其实这是错误的遐想.本文作者结合其自身站点的一些经验,以及借鉴网上的一些成功经验,逐步揭开 SEO 的神秘面

大流量网站性能优化:一步一步打造一个适合自己的BigRender插件(转)

BigRender 当一个网站越来越庞大,加载速度越来越慢的时候,开发者们不得不对其进行优化,谁愿意访问一个需要等待 10 秒,20 秒才能出现的网页呢? 常见的也是相对简单易行的一个优化方案是 图片的延迟加载.一个庞大的页面,有时我们并不会滚动去看下面的内容,这样就浪费了非首屏部分的渲染,而这些无用的渲染,不仅包括图片,还包括其他的 DOM 元素,甚至一些 js/css(某些js/css 是根据模块请求的,比如一些 ajax),理论上,每增加一个 DOM,都会增加渲染的时间.有没有办法能使得

一步一步封装自己的HtmlHelper组件BootstrapHelper(三)_javascript技巧

前言:之前的两篇封装了一些基础的表单组件,这篇继续来封装几个基于bootstrap的其他组件.和上篇不同的是,这篇的有几个组件需要某些js文件的支持. BootstrapHelper系列文章目录 C#进阶系列--一步一步封装自己的HtmlHelper组件:BootstrapHelper C#进阶系列--一步一步封装自己的HtmlHelper组件:BootstrapHelper(二) C#进阶系列--一步一步封装自己的HtmlHelper组件:BootstrapHelper(三:附源码) 一.Nu

一步一步教你加密解密技术——压缩与脱壳(3)(1)

第四节 手动脱壳1.基本知识手动脱壳就是不 借助自动脱壳工具,而是用动态调试工具SOFTICE或TRW2000来脱壳.这课谈谈一些入门方面的知识,如要了解更深的脱壳知识,请参考<脱壳高级篇>这课.工具*调试器:SoftICE .TRW2000*内存抓取工具:Procdump等:*十六进制工具:Hiew.UltraEdit.Hex Workshop等:*PE编辑工具: Procdump.PEditor等:名词概念★PE文件:Microsoft设计了一种新的文件格式Portable Executa

一步一步写算法(之合并排序)

原文:一步一步写算法(之合并排序) [ 声明:版权所有,欢迎转载,请勿用于商业用途.  联系信箱:feixiaoxing @163.com]     前面一篇博客提到的快速排序是排序算法中的一种经典算法.和快速排序一样,合并排序是另外一种经常使用的排序算法.那么合并排序算法有什么不同呢?关键之处就体现在这个合并上面.     合并算法的基本步骤如下所示:     1)把0~length-1的数组分成左数组和右数组     2)对左数组和右数组进行迭代排序     3)将左数组和右数组进行合并,那

【DG】[三思笔记]一步一步学DataGuard

[DG][三思笔记]一步一步学DataGuard 它有无数个名字,有人叫它dg,有人叫它数据卫士,有人叫它data guard,在oracle的各项特性中它有着举足轻理的地位,它就是(掌声)......................Oracle Data Guard.而对于我而言,我一定要亲切的叫它:DG(注:主要是因为打着方便). 不少未实际接触过dg的初学者可能会下意识以为dg是一个备份恢复的工具.我要说的是,这种形容不完全错,dg拥有备份的功能,某些情况下它甚至可以与primary数据库

艾伟_转载:[一步一步MVC]第四回:漫谈ActionLink,有时“胡搅蛮缠”

本系列文章导航 [一步一步MVC]第一回:使用ActionSelector控制Action的选择 [一步一步MVC]第二回:还是ActionFilter,实现对业务逻辑的统一Authorize处理 [一步一步MVC]第三回:MVC范例大观园 [一步一步MVC]第四回:漫谈ActionLink,有时"胡搅蛮缠" [一步一步MVC]第五回:让TagBuilder丰富你的HtmlHelper [一步一步MVC]第六回:什么是MVC(上)? MVC时代来临了,但是一开始是不被很多人接受的.可能

艾伟_转载:[一步一步MVC]第五回:让TagBuilder丰富你的HtmlHelper

本系列文章导航 [一步一步MVC]第一回:使用ActionSelector控制Action的选择 [一步一步MVC]第二回:还是ActionFilter,实现对业务逻辑的统一Authorize处理 [一步一步MVC]第三回:MVC范例大观园 [一步一步MVC]第四回:漫谈ActionLink,有时"胡搅蛮缠" [一步一步MVC]第五回:让TagBuilder丰富你的HtmlHelper [一步一步MVC]第六回:什么是MVC(上)? 对HtmlHelper进行扩展,是MVC中对于Vie