【问题标题】:How can I check my .NET assembly for freshness?如何检查我的 .NET 程序集是否新鲜?
【发布时间】:2008-10-20 15:31:04
【问题描述】:

全部,

我正在处理一个 SharePoint 项目,但这本身并不是一个特定于 SharePoint 的问题。我有一个已部署到 SharePoint 场的程序集,我想验证我的“最新版本”是否位于 GAC 中,或者是否存在昨天晚些时候的旧版本。这是一个测试场,所以是的,我们一直在更新版本。

在每次编译时不做任何疯狂的事情,例如更改程序集版本本身*,是否有一些程序集属性我可以检查(或在编译时设置)?

*我应该澄清一下,在 SharePoint 项目中,我们在多个位置(包括 XML 文件)对程序集的全名进行硬编码,因此更改程序集版本比您想象的要少。

【问题讨论】:

    标签: c# .net sharepoint clr


    【解决方案1】:

    Assembly Version 是用于此目的的机制,但您可以通过将 GAC 程序集的 MD5 哈希与最新版本的 MD5 进行比较来自行开发。

    【讨论】:

    • 应该想到 MD5 哈希,现在听起来很明显 :),谢谢
    • 程序集版本必须保持不变,除非您想进入程序集绑定重定向链(“正确”的方式,但总 PITA)。看看 AssemblyFileVersion 以免让自己头疼。
    【解决方案2】:

    您可以使用 AssemblyFileVersion 属性。从文档中,AssemblyFileVersion

    指示编译器为 Win32 文件版本资源使用特定版本号。 Win32 文件版本不需要与程序集的版本号相同。

    【讨论】:

      【解决方案3】:

      您可能还想查看程序集绑定重定向。基本上,您可以在 web.config 或 app.config 中放置一些设置来告诉您的应用(在本例中为 SharePoint)使用特定的版本号:

      更多信息:http://msdn.microsoft.com/en-us/library/7wd6ex19(VS.71).aspx

      它可能不是这种情况的解决方案,但它可能在未来证明是有用的。我发现它在处理自定义 SharePoint 解决方案时特别有用。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-01-06
        • 1970-01-01
        • 2010-11-06
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多