VS2010:从 .NET 项目中添加对 Silverlight 项目的项目引用的警告

Posted

技术标签:

【中文标题】VS2010:从 .NET 项目中添加对 Silverlight 项目的项目引用的警告【英文标题】:VS2010: Warning on add project reference to Silverlight project from .NET project 【发布时间】:2011-02-17 01:04:24 【问题描述】:

在 VS2010、Silverlight 4、.NET 4 中,我有一个 WCF 服务和一个 Silverlight 应用程序,Silverlight 不是通过添加服务引用而是通过共享合同来访问该类的。自然,这意味着我在 Silverlight 类库中拥有合同,并且该服务具有对该库的项目引用。

奇怪的是,这会导致引用上出现 /!\ 图标和警告:

无法引用项目“SilverlightClassLibrary1”。引用的项目针对不同的框架系列 (Silverlight)

但是,该参考工作正常(我可以在我的 Silverlight 应用程序中使用该界面)并且构建良好。

这是一个错误吗?我的猜测是肯定的,因为如果您添加程序集引用而不是项目引用,警告是谎言并且也会消失。我提交了bug,还有更多信息here。

【问题讨论】:

请注意,这只是一个警告。我见过类似的——事实上,这就是为什么我没有扩展SerializerGenerator 图片中的“引用”,这里是marcgravell.blogspot.com/2010/04/…(MyDto 项目和你的一样,Silverlight)。不过,好问题。很好的地方重新项目/ dll参考之间的区别。我会为我正在做的事情试一试;-p 有趣。如果通过链接文件将合同包含到 Silverlight DLL 中而不是添加 DLL 引用,它会抱怨吗? 不,它不会抱怨,因为您实际上是在将代码复制到另一个程序集中。 【参考方案1】:

微软回复了我发布的bug。该警告旨在存在并且旨在成为警告而不是错误,尽管我认为该文本是错误的。原因是引用 Silverlight 项目将导致运行时失败如果 Silverlight 未正确安装在计算机上。目前无法抑制警告。

【讨论】:

我有点困惑 - 这是否意味着 Silverlight 必须安装在托管我的 wcf 服务的服务器上?感谢您提供有用的信息 嗯,这个 URL 已经失效了。你有没有机会记住它的名字,这样我就可以再次找到它?我尝试在 Microsoft Connect 中搜索 "The referenced project is targeted to a different framework family (Silverlight)",但没有弹出任何内容。【参考方案2】:

如果您希望警告消失,您可以使用“添加引用”-->“浏览”直接添加 dll,而不是通过“添加引用”-->“项目”添加项目。

这对我们来说也是一个非常烦人的问题,这是我们发现的唯一可行的解​​决方法。

【讨论】:

这不是一个好的解决方案,因为它不涉及发布与调试版本。建立在错误类型上的干净工作区将失败,因为 DLL 将不存在,除非您将 DLL 静态签入到源代码管理中,或者将 Debug/Release 的输出目录设置为该项目依赖项的同一文件夹。即使这样,特别是对于多线程构建,该解决方案也将缺少构建项目的依赖关系,以计算项目的正确构建顺序。

以上是关于VS2010:从 .NET 项目中添加对 Silverlight 项目的项目引用的警告的主要内容,如果未能解决你的问题,请参考以下文章

添加 ASP.NET 文件夹和 App_Code 命名空间中缺少 VS 2010 App_folder

急 .NET中如何引用Quartz.dll,Common.Logging.dll

在 VS 2010 的 Winforms 项目中添加 WPF 窗口

配置 IIS Express 以实现对 VS2010 项目的外部访问

关于dll文件的引用问题

VS2010下创建的VB.NET项目打包发布安装包的流程