如何在不使用GAC的情况下共享库?

时间:2010-09-09 03:34:32

标签: c# .net asp.net visual-studio-2008 .net-3.5

我有一个可供许多网站使用的库。我现在的方式是在库的属性中,我将“构建后事件命令行”设置为:复制“$(TargetPath)”“$(SolutionDir)\ MyWebsite \ bin \ $(TargetFileName)”

每次我想要一个新网站使用共享库时,我都会添加一个这样的新行:copy“$(TargetPath)”“$(SolutionDir)\ MyWebsite2 \ bin \ $(TargetFileName)”

除了使用GAC之外,还有一种简单或更好的方法吗?

1 个答案:

答案 0 :(得分:2)

在我看来,你的问题是对其他项目如何生成和使用这个库缺乏控制。如果我是你(我不是:)我将开始通过单元测试协同项目开发库,其中可以独立开发和测试新功能。一旦该功能已经实施并经过测试,可以在您的单元测试参数中手动将程序集复制到Web项目的“库”文件夹中,该文件夹首先需要扩展库(此文件夹包含该项目使用的所有已编译程序集。

更好的方法是维护一个版本系统,在该系统中标记新版本的库,以便跟踪它正在使用的确切源版本。

我之所以建议看起来像是一种繁琐的工作方法,是因为您现有的做法会使您现有的网站变得非常脆弱,因为某个网站的库中所做的更改实际上可能会破坏其他网站之一......随着您所拥有的网站数量的增加,您不能永远地对现有网站进行旧版本的共享库复制测试。

由于这些原因,我建议使用GAC。