【问题标题】:Where do you keep common reference files for multiple Silverlight projects?您将多个 Silverlight 项目的通用参考文件保存在哪里?
【发布时间】:2011-04-01 15:37:31
【问题描述】:

我想知道您在以下情况下的最终表现是什么行业标准或建议。

我正在创建多个在不同日期发布的 Silverlight 项目。所有这些项目都使用各种共享代码(通用 dll)。这些共享代码将用于客户端或服务器端。我的问题是,如果共享代码发生更改,您是否会重新编译所有受影响的项目并仅在您更改使用共享组件的实际代码时发布或重新编译?

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

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

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

【问题讨论】:

    标签: silverlight wcf silverlight-4.0 domainservices


    【解决方案1】:

    有两种可能的方法:

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

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

    【讨论】:

      【解决方案2】:

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

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2011-11-23
        • 2010-09-13
        • 2018-10-31
        • 1970-01-01
        • 1970-01-01
        • 2017-04-24
        • 1970-01-01
        相关资源
        最近更新 更多