您在哪里保留多个Silverlight项目的公共参考文件?

时间:2011-04-01 15:37:32

标签: silverlight wcf silverlight-4.0 domainservices

我想了解一下行业标准或建议是关于你如何处理以下情况。

我正在创建多个Silverlight项目,这些项目将在不同日期发布。所有这些项目都使用varios共享代码(常见的dll)。这些共享代码将用于客户端或服务器端。我的问题是,如果共享代码发生更改,您是否会重新编译所有受到关注的项目,并且只有在更改使用共享组件的实际代码时才会释放或重新编译?

目前,在客户端,我们在每个silverlight项目中创建一个程序集引用文件夹,并将最新所需的dll放入其中。通过这样做,它在XAP本身中具有所有必需的文件,并且它不会与其他项目冲突,并且它可以正常工作。使用这种方法,我不会因为常见的dll改变而重建任何其他客户端代码。如果多个项目需要更改公共dll,则将最新副本放入所有受影响的项目中并构建它们并进行分发。

另一方面,服务器端(Domain Services使用EF),所有服务代码都位于网站的bin文件夹下。因此,如果我要对常见的dll进行更改,那么不仅需要发布当前项目的最新常用dll,还要重新编译所有其他服务以使用新的dll。

想知道您的意见和建议。 感谢

2 个答案:

答案 0 :(得分:0)

有两种可能的方法:

  • 将常用代码添加到解决方案并具有项目参考
  • 获取构建过程以构建文件夹并从那里引用

我更喜欢第一个选项。我总是使用最新的代码进行构建和调试,而不必担心过时的引用。 我过去使用过第二种方法而且凌乱并且在调试不存在的错误(引用旧版本)后会浪费团队的时间。事实上,我记得Visual Studio有时候不会得到更高版本的版本。

答案 1 :(得分:0)

Silverlight项目的另一个替代方案是包含公共库的use MEF to dynamically download a XAP file。然后,如果公共库发生更改,您可以发布更新的“CommonLibraries.xap”,并且您的Silverlight客户端可以独立于Silverlight应用程序的其余部分进行刷新。

您可以对使用这些公共库的其他项目采用相同的方法。应用程序可以动态加载公共库,以便可以独立刷新公共库。

如果可能,请考虑通过WCF服务使用“公共库”代码。