问三个有关Add-In技术的难题,恳请高手帮忙,该怎么解决
问三个有关Add-In技术的难题,恳请高手帮忙<br />
以下三个问题能解决一个即结贴,如果有人解决多个,就加分结贴(每个问题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@yaho
同样希望能找到能共同探讨Add-in话题的朋友!