注册的Silverlight控件与Visual Studio和配方
改变历史:
- 2009年4月30日:视觉工作室发表2008 SP1中,混合3预览的Silverlight 3测试版1, Silverlight的工具包2009年3月3版 。
- 2009年11月29日:提供最新的Visual Studio 2010 Beta 2的 。
我会继续上升的内容与最新的Visual Studio,Silverlight版本混纺及日期。
介绍
这部分是该系列的变化及时执行设计Silverlight的工具包 2009年3月发布 。 这个职位说明后运行的Silverlight工具包2009年3月3安装Silverlight的工具包与Visual Studio和配方3集成,并解释它是如何做,所以你可以注册与Visual Studio和Silverlight控件也将您的。
混合一体化
安装后的Silverlight 3 Beta1的工具 , 混合3预览 ,和2009年3月的Silverlight 3工具包 (请参阅后的Silverlight工具包设计的时代特点:2009年3月发布的更新节以获取更多的信息时,Silverlight 3开发与Visual Studio 2008和混合3),创建一个从配方的Silverlight 3应用程序3,我们可以看到Silverlight的工具包控制自动显示在图书馆资产 :
用户可以拖放控件工具包从构件库设计或XAML视图,Blend会自动添加程序集引用,xmlns前缀和XAML代码,非常方便:
Visual Studio集成
打开在Visual Studio项目,我们可以看到,控制工具包将自动显示在Visual Studio 工具箱 ,用户可以拖放控件从工具箱设计或XAML视图以及:
此外工具箱,工具包的组件也出现在添加引用对话框:
并选择工具箱项对话框:
执行
使用Visual Studio和配方进行整合是通过注册表。 如果您打开“3月2009.msi工具包”在Silverlight 海怪 ,你可以看到神奇的登记:
注册与Visual Studio
AssemblyFoldersEx
与Visual Studio注册大多数是通过[HKLM中| HKCU中] \软件\微软\微软的SDK \ Silverlight的\ 3.0 \ AssemblyFoldersEx。 该工作室在Visual引用页面有很好的解释,AssemblyFoldersEx决议和参考。 这是一个有点过时,并负责。净而Silverlight的。 但它主要是Silverlight的权利过,并显示了2010年根新的Visual Studio工具箱登记机制。 我们努力工作,理顺登记机制,巩固和简化整个工具就像它的MSBuild,Visual Studio和配方。
以Silverlight的工具包2009年10月推出3为例:
ç:\“章查询”HKEY_LOCAL_MACHINE \软件\微软\微软的SDK \ Silverlight的\ 3.0 \ AssemblyFoldersEx \ SilverlightToolkit0910“/秒
HKEY_LOCAL_MACHINE \软件\微软\微软的SDK \ Silverlight的\ 3.0 \ AssemblyFoldersEx \ SilverlightToolkit0910
(默认)REG_SZ ç:\ Program Files文件\微软的SDK \ Silverlight的\ 3.0 \工具包\ Oct09 \斌\HKEY_LOCAL_MACHINE \软件\微软\微软的SDK \ Silverlight的\ 3.0 \ AssemblyFoldersEx \ SilverlightToolkit0910 \ 工具箱
- AssemblyFolderBase表示目标框架平台。 上面的注册表路径“\软件\微软\微软的SDK \ Silverlight的”指示的Silverlight SDK的。 对AssemblyFolderBase其他可能的值:
- “\软件\微软\微软的SDK \视窗”
- “\软件\微软\。NETFramework”
- “\软件\微软\。NETCompactFramework”
- FrameworkVersion表明该框架版本的目标。 “3.0”在上面的例子表明,这是为Silverlight 3。 使用对于Silverlight 4,“4.0版”。
- AssemblyFoldersSuffix介绍了分项目标。 “AssemblyFoldersEx”告诉编译系统如何解决组装时所引用的程序集路径中没有提到上述的例子。 其他的AssemblyFoldersSuffix典型值:
- “安装路径”:其中的Silverlight SDK的安装。
- “ReferenceAssemblies”:其中的Silverlight SDK参考组件安装。
- PackageName时表示包的名称登记注册,其默认值表明它安装在那里。 在上面的例子中,“SilverlightToolkit0910”表示,这是2009年10月发布的Silverlight工具包,它的“C默认值:\ Program Files文件\微软的SDK \ Silverlight的\ 3.0 \工具包\ Oct09 \斌\”表示它安装在那里。 有了这个注册,工具包的组件将显示在添加引用对话框,选择工具箱项对话框,并提示他们可以不通过其他途径Silverlight项目引用。
- 工具箱 :工具箱中存在的主要子告诉Visual Studio 2010的扫描此软件包的所有组件的安装路径下,并添加所有控件的Visual Studio工具箱中发现,除ToolboxBrowsableAttribute有(假)指定。
工具箱控件安装(推荐)
吉姆中岛博客上讲述工具箱控件安装在他为WPF控件后,你看到了工具箱控件安装程序?在2007年。 工具箱控件安装程序包现在的Visual Studio 2008的一部分,但它不工作,因为这是在Visual Studio 2010后修复的错误的Silverlight。 在新的AssemblyFoldersEx \工具箱登记机制,没有理由使用后TCI公司与Visual Studio 2010和。
注册与交融
注册是通过与混合HKEY_LOCAL_MACHINE \软件\微软\的表达\配方\ 3.0 \工具箱\ Silverlight的\ 3.0:
ç:\“章查询”HKLM \软件\微软\表达式\混合\ 3.0 \工具箱\ Silverlight的\ 3.0 \ SilverlightToolkit0910“/秒
HKEY_LOCAL_MACHINE \软件\微软\表达式\混合\ 3.0 \工具箱\ Silverlight的\ 3.0 \ SilverlightToolkit0910
(默认)REG_SZ ç:\ Program Files文件\微软的SDK \ Silverlight的\ 3.0 \工具包\ Oct09 \斌\
乌尼Ravindranathan的博客帖子配方三可扩展性有更多的机制有关此。 你可以种映射此注册机制,以上述Visual Studio的注册机制:
- AssemblyFolderBase是“\软件\微软\的表达\配方\ 3.0 \工具箱\ Silverlight的”
- FrameworkVersion是“3.0”
- PackageName是“SilverlightToolkit0910”,其默认值的“C:\ Program Files文件\微软的SDK \ Silverlight的\ 3.0 \工具包\ Oct09 \斌\”表示它安装在那里。
一个警告:如果注册程序集依赖于其他组件,这些组件需要依赖于所注册的组件相同的目录,或自己根据AssemblyFoldersEx注册如上所述。
结论
与Visual Studio和Silverlight的工具包,使共混注册控制了很多更容易使用的开发人员。 我们正在不断寻求改善的希望注册机制,使整个设计简单而一致的(Visual Studio和配方)和技术(WPF和Silverlight)。 所有反馈的欢迎!








@ Doych
您好Doych,
此外HKEY_LOCAL_MACHINE \软件\ Wow6432Node \微软\微软的SDK \ Silverlight的\ 4.0 \ AssemblyFoldersEx \ RedControl \工具箱,你也需要设置HKEY_LOCAL_MACHINE \软件\ Wow6432Node \微软\微软的SDK \ Silverlight的\ 4.0 \ AssemblyFoldersEx \ RedControl的它的默认值安装的文件夹。 至于内部类的工具箱,这是一个个航站(内部控制许多错误是从非传统知识的组合),并应主要工作围绕传统知识的最新版本。
谢谢,
宁
@哈沙
您好哈沙,
是的,这只是为VS2010工程。 对于VS2008的,你必须使用TCI的,它不能保证工作。 如果您开发Silverlight的,最好的选择是升级到VS2010。
谢谢,
宁
非常感谢,
这是为我工作与VS 2010。 但是,这些控件没有出现在VS 2008。 如何实现这一目标.. 请帮助!
嗨宁
我使用SL4 VS2010 RTM的。 我跟着你的建议,以便登记自己在Visual Studio工具箱Silverlight控件。 它不适合我。 我试图不使用注册安装工具箱控制我的控制。 我刚添加的注册表项 -
HKEY_LOCAL_MACHINE \软件\ Wow6432Node \微软\微软的SDK \ Silverlight的\ 4.0 \ AssemblyFoldersEx \ RedControl \工具箱
如果将控件添加到工具箱通过创建一个新标签,然后选择项目,它工作正常。
有趣的是,Silverlight的安装后,2010年3月4工具包,工具包的管制没有正确注册。 其内部类均可见。
你有什么建议吗?
谢谢。
Doychin。
@ pushp
您好Pushp,
很抱歉的麻烦
是的,该图标的问题是已知的,并且没有公开记录/支持的方法来解决它,AFAIK。 您可能需要尝试安装您的控件,然后再安装Silverlight SDK,或它的更新,看看是否解决您的控制注册的问题。
我们将发布一个新的控制注册机制,以及解决问题的特克斯和凯科斯群岛与VS2010,所以希望这将变得非常容易。
谢谢,
宁
嗨宁
感谢您的澄清。 是否有一些其他的方法我可以遵循,以达到同样的效果? 这一点至关重要,我的项目。
我也试过这样的Silverlight工具包注册其控制(把微软的SDK / Silverlight的...并使用自定义操作(管理工具包actioins注册表项),以更新工具箱,但我现在面临的问题是,在这里我不看我的图标工具箱中的控制,而不是我看到了我的所有控件的默认图标。
任何帮助是极大的赞赏。
谢谢,
Pushp
@ pushp
您好Pushp,
它不工作。 正如我叫了,有在VS2008中,将在VS2010(不CTP或Beta1的固定TCI的一些问题)。 我们也致力于简化工具箱登记,因此未来的VS2010停留公开发行调整。
谢谢,
宁
您好,
有没有设定SilverlightControls注册表值1(而不是WPFControls)登记工作,你在VS Silverlight控件? 虽然对WPF的工程,它不是为Silverlight控件工作。
谢谢,
Pushp