2012-10-30 118 views
1

我有许多子项目的大项目。 (如在附图中所提到的)共享组件在一个位置?

WebSiteA都和WebSiteB已经参考 DLL项目。

但是,当我改变DLL的 - 我需要更新每个网站的斌。

我不想那样。

我知道我可以把它们放在GAC但我被告知不要

enter image description here

有没有像任何解决方案(不要问我为什么吧。):

enter image description here

所以当我更新任何DLL - 我只把它放在一个地方? (所以这些DLL不会在每个站点的bin

+1

是不是可以从这两个项目中提取常用功能,并创建一个最终将由WebSiteA和WebSiteB引用的通用dll?这样WebsiteA和WebsiteB更新不会发生冲突。 –

回答

2

您可以使用.refresh文件参考但不在现场服务器上测试。

首先将您的常用dll放在公共目录中。
在每个bin上放置第二个文件,将*.refresh文件与dll一起放在一起,如果发现新版本,则说明从哪里更新dll。

,并让你有垃圾箱像里面:

mySuperModule.dll 
mySuperModule.dll.refresh 

mySuperModule.dll.refresh模块需要检查更新里面的位置 - >

d:\Dlls\mySuperModule.dll 

其中d:\dlls是搜索新更新的dll的常用位置。

最后你只更新公用目录dll,并且你离开项目让其余部分自动完成。

+0

相当有趣的方式,可能会尝试。 –

+0

@RyanMcDonough我已经在当地完成了工作。但在实时服务器上,我们逐个更新所有服务器 - 我们遇到同样的问题:) – Aristos

+0

@Aristos因此,让我说我有一个项目myGame,我需要引用一个dll。当我参考一个外部的dll - 它被复制到本地的bin .....那么好处在哪里? –

0

GAC的重点在于提供该功能,如果您不使用该功能,则无法以您想要的方式共享这些DLL 。这是由于网站的安全性和彼此分离。