日期:2014-05-19  浏览次数:20725 次

问三个有关Add-In技术的难题,恳请高手帮忙
以下三个问题能解决一个即结贴,如果有人解决多个,就加分结贴(每个问题50分),恕在下新手,分不多,各位高手见谅。

以下问题均是要在“核心自动化-EnDTE”中完成。

1. 用Add-in在vs2005环境中用模版新建一个Windows窗体的解决方案,然后通过代码操作此窗体,在窗体上添加一个按钮。直接运行,没有问题,相应的注册和委托都可以生成。问题是:如果我在添加完按钮后,再用模版向工程中添加一个类文件(有后缀为cs文件的类项目)的话,原先生成的窗体上的按钮就会缺少注册,也就是运行是就只是一个空白的窗体。现在就是如何能在添加完按钮后刷新一下当前的活动窗体?

我试了在添加完按钮后调用如下方法,再生成新的类,不管用。
VSProject2   prj   =   ((VSProject2)(applicationObject.Solution.Projects.Item(1).Object));
prj.Refresh();


2. 我已经成功实现在项目中自动化地添加引用,但我一直没有试出来如何在项目中添加属性设置(Properties-> Settings.settings中新增一个用户属性)
添加引用如下就实现了:
        private   void   AddReferences(DTE2   dte)
        {
                VSProject2   theVSProject   =   ((VSProject2)(dte.Solution.Projects.Item(1).Object));
                References   refs   =   theVSProject.References;
                refs.Add( "VSLangProj2.dll ");
        }


3. 如何能自动化的在项目创建一个强类型的DataSet(假定连接字符串已经拥有),我已经实现从模版创建一个后缀为xsd的强类型数据集设计器,并已拿到其设计窗口:

        using   EnvDTE;
        using   EnvDTE80;

        public   void   AddStrongDataSet(DTE2   dte)
        {
                Solution2   soln;
                Project   prj;
                soln   =   (Solution2)applicationObject.Solution;
                ProjectItem   prjItem;
                String   itemPath;
                prj   =   soln.Projects.Item(1);
                itemPath   =   soln.GetProjectItemTemplate( "DataSet.zip ",   "CSharp ");
                prj.ProjectItems.AddFromTemplate(itemPath,   "MyDataSet.xsd ");
                prjItem   =   prj.ProjectItems.Item( "MyDataSet.xsd ");
                Window   desingner   =   prjItem.Open(Constants.vsViewKindDesigner);
                IDesignerHost   host   =   desingner.Object   as   IDesignerHost;
        }
但接下来怎么向此设计窗口中添加强类型的表,就不知道了。

如果有好的参考资料的话,如果能发给我一份的话也万分感谢。
chanfengsr@yahoo.com.cn
同样希望能找到能共同探讨Add-in话题的朋友!
chanfengsr@msn.com

------解决方案--------------------
偶也不会...
------解决方案--------------------
楼主我是不知道 只有帮你顶
------解决方案--------------------
我也不懂。。。
------解决方案--------------------
http://msdn2.microsoft.com/en-us/library/vslangproj.projectproperties_properties(VS.80).aspx