我们有一个供应商正在为我们编写一个使用我提供给他们的dll的应用程序。我的老板刚刚发现,如果我们需要对我们的某个dll进行更改,我们必须向供应商提供更新版本,以便他们重新编译他们的项目。这会导致问题,因为我们没有自动化测试,任何新的构建都需要我们的QA部门完全贯穿。
我之前没有对GAC做过太多,但相信它可能是我们正在寻找的。有没有办法可以将我的dll(我提供给供应商的那个)部署到GAC,并让供应商构建他们的.net项目,以便始终从GAC获取最新版本?
答案 0 :(得分:4)
他们需要在他们正在编译的项目中将引用的SpecificVersion
属性设置为false
。请参阅this question和the article that it links to。
答案 1 :(得分:1)
如果您在DLL中进行了重大更改,您当然需要发布新版本,以便供应商可以使用它进行编译。
但是否则供应商不需要拥有最新版本。相反,您可以使用Assembly Binding Redirection来确保在运行时使用最合适的(通常是最新的)版本。
有几种方法可以实现这一点,如链接文章中所述 - 最常见的是使用应用程序配置文件中的设置(如果您只想影响此应用程序)或发布者策略文件(如果您想影响所有使用共享程序集的应用程序。)