我有一个silverlight应用程序,里面有一个类库项目。该类库在.Net framework 4中运行,silverlight项目在silverlight 3中运行。当我想在silverlight proj中添加一个引用到类库时,我收到此消息:
"You can't add a reference to Classlibrary1.dll as it was not built against the silverlight runtime. silverlight project will only work with silverlight asseblies."
我试图改变classlibrary1用于.net框架3.5,3和2的框架,但它没有帮助。 (我的silverlight应用程序只能在silverlight 3中运行)
任何建议?
谢谢!
答案 0 :(得分:6)
显然 Silverlight项目仅适用于Silverlight组合。 .NET和Silverlight的CLR不同,因此程序集不兼容。这些框架提供了不同的类集,程序集具有不同的版本,等等。
您需要将类库更改为 Silverlight类库。
这可以通过changing project file manually或通过创建 Silverlight类库项目并复制其中的源来完成。如果您需要为非Silverlight项目使用相同的库并且不想维护两个版本,请考虑使用添加现有项... 对话框的添加为链接功能仅引用原始来源而不复制它们。但是,您需要确保只使用两个平台上可用的功能来构建两个库版本。
答案 1 :(得分:2)
您必须使用“Silverlight类库”项目模板向解决方案添加新项目。然后将文件从.NET类库项目移动到Silverlight类库项目中。
Silverlight应用程序无法引用.NET程序集。
答案 2 :(得分:0)
将库重建为sliverlight库;这将意味着一个新的csproj,主要是相同的文件。您可能(并非总是)发现您还需要调整代码以避免在较薄的Silverlight BCL中无法进行任何操作。