想象一下我已经有一个项目大楼.NET 3.5组件。现在,我想为Silverlight构建此组件,此外,以最少的努力保持其Silverlight版本。

什么是不可接受的:

  • 为Silverlight创建单独的项目

可以接受的是:

  • 添加自定义指令,使我可以针对Silverlight或.NET依赖于MSBUILD属性。
  • 为Silverlight添加特殊的构建配置
  • 将#IFDEF Silverlight / #endif部分添加到源代码。
  • 通常任何其他修改.csproj / .cs。

因此,基本上,我想维护一个单个项目,但针对两个框架。我不想维护两个单独的项目,因为这可能会导致错误,例如忘记包括新文件。如果有很多项目和大型团队,那么排除此类错误确实很重要。

如果这是完全不可能的,那么提供类似利益的任何解决方案都是可以接受的。

有帮助吗?

解决方案

您是否还排除了从Silverlight项目中链接到项目中的文件的链接?这是分享Silverlight和完整CLR之间实现的一种相当普遍的方法。 在.NET和Silverlight平台之间共享代码

另外,根据贾斯汀·安吉(Justin Angel)的说法,您可以参考并使用完整CLR中的Silverlight类库。我自己没有尝试过这个问题,而且没有解决问题,但这确实使场景变得直接: http://silverlight.net/blogs/justinangel/archive/2008/12/29/using-silverlight-dlls-on-the-desktop.aspx

其他提示

我同意斯科特。节省很多痛苦。共享同一代码库的两个项目是必经之路。您需要它在两个环境中使用Vstudio,使用不同的libs,包括/exculde文件,以做很多事情……轻松!

有两个项目的原因 远的 超越借口的借口。

MSDN包含有关平台多目标的详细信息:在MSDN上进行多目标

我认为您需要做的是正确地解决这一问题。您的Silverlight代码应仅适用于UI和与后端WCF服务的通信。这些服务将运行您的.NET 3.5代码(您要共享的代码)。这样,您也可以分享和n层。

如果您在Silverlight代码中对客户端进行大量计算,然后将其提交给服务器(可能是DB),那么我认为您正在打开一个安全孔。

您没有给出令人信服的理由,为什么需要一个单独的项目在Silverlight项目中访问代码。

您必须有两个项目,因为两个平台的Mscorlib参考是不同的。

查看此问题: http://www.google.ca/search?hl = en&q = targetting+silverlight+and+wesp+wpf&meta =&aq = f&oq =

如果您要做的只是在两者之间共享的常规旧.NET库,那么我建议创建两个项目(一个用于Silverlight,一个用于常规),并且在两个项目中都包含相同的文件。对于其他开发人员来说,这要容易得多。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top