如何在Silverlight下编译.net程序集

本文关键字:编译 net 程序集 Silverlight | 更新日期: 2023-09-27 18:19:08

我正试图为Silverlight编译AvalonEdit,但我不确定如何做到这一点,因为我从未使用过Silverlight,只有WPF。

我尝试将此控件添加到我的Silverlight应用程序中,但Visual Studio抱怨该程序集不能针对Silverlight进行编译。

我认为在项目设置中选择目标平台下的Silverlight是一个问题。

任何想法?

如何在Silverlight下编译.net程序集

Silverlight和WPF程序集不兼容。因此,您从Silverlight程序集引用的任何程序集也必须被编译为Silverlight程序集。我假设你提到的"项目设置"是你的程序集,而不是第三方程序集。

但是,在Silverlight中编译WPF代码可能具有挑战性。Silverlight是WPF的一个功能子集,因此代码可能会使用Silverlight中没有的特性。

你需要创建一个以silverlight为目标的新项目(File - new project - silverlight),然后将AvalonEdit源代码中的所有源代码添加到该库中。

编辑:

还要注意,控件可能会使用Silverlight中不可用的类。来自codeplex关于这个控件的讨论(从2009年开始):

Silverlight没有System.Windows.Media.TextFormatting命名空间,所以如果你想将AvalonEdit移植到Silverlight,你必须重写ICSharpCode.AvalonEdit.Rendering命名空间的很大一部分。

在silverlight项目中,你不能引用非silverlight的dll或项目。所以在这个项目中,如果有一个必要的非silverlight dll来构建这个项目。你不能这样做。

如果只是wfp支持而silverlight不支持的一些用法,请找出不同之处。然后排除这些代码或使用pragma

#if !WPF
//Todo
#endif