none
问三个有关Add-In技术的难题,恳请高手帮忙 RRS feed

  • 问题

  • 以下问题均是要在“核心自动化-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;
        }
    但接下来怎么向此设计窗口中添加强类型的表,就不知道了。

     

    以上问题在CSDN上我也问过,可惜没有人回答,如果知道答案的到CSDN上给个答案我一样给分。
    http://community.csdn.net/Expert/topic/5684/5684900.xml?temp=.9734461

     

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

    2007年8月2日 0:46

答案