通过DTE获取设计时开发环境
2004-09-26 22:24
447 查看
通过DTE获取设计时开发环境
<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />
关键词:DTE ,设计时 ,Design Time ,开发环境
写Add-in程序的朋友我想应该是再熟悉不过了,像大名鼎鼎的单元测试和重构工具等,还有宏,或者更多…只要嵌入到VS的开发环境当中去,我想DTE应该起到很重要的脚色。
在这里我就不说那么多,就说怎么在设计时(Design Time)获取项目的物理路径,我想做过组件的朋友应该不会陌生Design Time的用处。在设计时能够取到项目下的Web.Config的信息,或者取到自己定义的一些信息或数据。
那么DTE是在一个叫"Microsoft Development Environment 7.0"的COM当中的EnvDTE命名空间里。我们只需引用这个组件就行了。
废话不用说太多,这些MSDN上都有,下面具个简单例子,就是自定义组件的设计器里面取到项目的物理路径,不管你把组件从ToolBox中拉到哪个项目里面,都能准确地取到所在项目的物理路径,这就是设计时的好处。
public class TestControlDesigner : System.Web.UI.Design.ControlDesigner
{
public override string GetDesignTimeHtml()
{
string html = "found nothing";
try
{
EnvDTE.DTE devenv = null;
devenv = (EnvDTE.DTE)System.Runtime.InteropServices.Marshal.GetActiveObject("VisualStudio.DTE.7.1");
Array projects = (System.Array)devenv.ActiveSolutionProjects;
if ((projects.Length == 0) || (projects.Length > 1))
{
html = "Exactly one project must be active";
}
else
{
EnvDTE.Project project = (EnvDTE.Project)(projects.GetValue(0));
System.IO.FileInfo info = new System.IO.FileInfo(project.FullName);
html = info.Directory.FullName;
}
}
catch (Exception ex)
{
html = "Exception occured: " + ex.Message;
}
return html;
}
}
<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />
关键词:DTE ,设计时 ,Design Time ,开发环境
写Add-in程序的朋友我想应该是再熟悉不过了,像大名鼎鼎的单元测试和重构工具等,还有宏,或者更多…只要嵌入到VS的开发环境当中去,我想DTE应该起到很重要的脚色。
在这里我就不说那么多,就说怎么在设计时(Design Time)获取项目的物理路径,我想做过组件的朋友应该不会陌生Design Time的用处。在设计时能够取到项目下的Web.Config的信息,或者取到自己定义的一些信息或数据。
那么DTE是在一个叫"Microsoft Development Environment 7.0"的COM当中的EnvDTE命名空间里。我们只需引用这个组件就行了。
废话不用说太多,这些MSDN上都有,下面具个简单例子,就是自定义组件的设计器里面取到项目的物理路径,不管你把组件从ToolBox中拉到哪个项目里面,都能准确地取到所在项目的物理路径,这就是设计时的好处。
public class TestControlDesigner : System.Web.UI.Design.ControlDesigner
{
public override string GetDesignTimeHtml()
{
string html = "found nothing";
try
{
EnvDTE.DTE devenv = null;
devenv = (EnvDTE.DTE)System.Runtime.InteropServices.Marshal.GetActiveObject("VisualStudio.DTE.7.1");
Array projects = (System.Array)devenv.ActiveSolutionProjects;
if ((projects.Length == 0) || (projects.Length > 1))
{
html = "Exactly one project must be active";
}
else
{
EnvDTE.Project project = (EnvDTE.Project)(projects.GetValue(0));
System.IO.FileInfo info = new System.IO.FileInfo(project.FullName);
html = info.Directory.FullName;
}
}
catch (Exception ex)
{
html = "Exception occured: " + ex.Message;
}
return html;
}
}
相关文章推荐
- Java学习笔记38:通过Spring Bean 注入static变量,来设计一套适合测试,开发,生产环境的配置项
- 微信公众号开发-开发环境搭建并通过java代码获取微信access_token
- 通过Spring Bean 注入static变量,来设计一套适合测试,开发,生产环境的配置项
- web开发设计--JS学习之通过ID获取元素
- [phpcms二次开发]通过include获取配置文件的返回值
- 敏捷开发 如何设计好看板?:敏捷看板成功实施的关键?如何通过看板实现项目可视化?
- 通过 spring 容器内建的 profile 功能实现开发环境、测试环境、生产环境配置自动切换
- iOS学习之路--通过APP边学编写(二)搭建基础的开发环境
- Android Map Api 使用和开发(3)浮动搜索框 ,通过地址名称获取经纬度和详细地址并定位
- UWP开发:获取用户当前所在的网络环境(WiFi、移动网络、LAN…)
- 通过 spring 容器内建的 profile 功能实现开发环境、测试环境、生产环境配置自动切换
- 界面原型设计工具 Axure RP开发环境搭建
- react项目实战(权限模块开发七)通过ajax技术获取数据
- android开发学习笔记(一)分别通过GET和POST请求从服务器端获取数据
- 20145311 《信息安全系统设计基础》实验一 开发环境的熟悉
- [转] 关于NS2跨层设计实现的一些有用资料整理, 通过TclObject::lookup获取C++对象指针
- 项目开发中的一些注意事项以及技巧总结 基于Repository模式设计项目架构—你可以参考的项目架构设计 Asp.Net Core中使用RSA加密 EF Core中的多对多映射如何实现? asp.net core下的如何给网站做安全设置 获取服务端https证书 Js异常捕获
- 安卓游戏开发_基础环境获取代码
- win2k环境下基于JBOSS的J2EE开发实践----之四:BMP实体Bean的编写与设计
- WinCE6.0平台的Ublox的AGPS功能开发,通过GPSID获取GPS经纬度数据