我正在尝试使用动态数据显示(D3) 库在 Silverlight 5 应用程序(浏览器外)中显示图形。每当我尝试添加“DynamicDataDisplay.dll”作为参考时,它会在我关闭对话框后再次被删除。
但是,我可以在普通的 Windows 窗体或 WPF 项目中使用该引用。那么这是 Silverlight 框架的一些限制吗?
我能做些什么呢?也许以不同的方式自己编译 D3?
我正在尝试使用动态数据显示(D3) 库在 Silverlight 5 应用程序(浏览器外)中显示图形。每当我尝试添加“DynamicDataDisplay.dll”作为参考时,它会在我关闭对话框后再次被删除。
但是,我可以在普通的 Windows 窗体或 WPF 项目中使用该引用。那么这是 Silverlight 框架的一些限制吗?
我能做些什么呢?也许以不同的方式自己编译 D3?
Silverlight 应用程序只能使用 Silverlight 项目编译的程序集。有例外,但对于任何与 UI 相关的东西,它总是正确的。
因此,如果您想在 Silverlight 应用程序中使用第三方库,则需要使用特殊的 Silverlight 版本而不是普通版本。“正常”版本有时称为 .NET4 版本或 WPF 版本,以与 Silverlight 版本进行对比。
最终结果是 Silverlight 在所有实际用途中都不是与完整的 CLR二进制兼容的。但是有相当多的源兼容性,包括核心框架的大部分和部分不兼容的 WPF 子集。
事实上,构建并行 WPF 和 Silverlight 程序集的标准方法是使用两个项目,将所有相同的源文件与一些条件编译链接起来。
幸运的是,正如@dtb 所指出的,动态数据显示已经支持 Silverlight 下载。但这同样适用于您可能考虑使用的任何第三方库:它需要具有 Silverlight 风格。
如果 D3 dll 依赖于 .Net 的完整安装而不仅仅是 silverlight 子集,Silverlight 将不允许直接导入。您必须在服务器上托管 .dll 并向其公开异步服务方法。除非这是一个真正的杀手级 DLL,否则不值得......
您也可以使用可移植类库,我是 silverlight