Reference 将我的DLL部署到GAC时,引用了其他不在GAC中的DLL

Reference 将我的DLL部署到GAC时,引用了其他不在GAC中的DLL,reference,assemblies,gac,Reference,Assemblies,Gac,我正在建一个类库。此库将部署到GAC 在我的库中,我引用了一些外部依赖项。无法将依赖项部署到GAC 当我部署并使用我的库时,它会抱怨它无法加载依赖项 如何部署第三方DLL以便我的程序集可以引用它们?若要将程序集添加到GAC,您不需要将该程序集的所有引用也包含到GAC中。因此,只要使用程序集的应用程序能够找到所有引用,就没有问题 因此,可以私下部署所有程序集(与应用程序位于同一文件夹中),也可以将它们部署到该GAC中,并只私下部署该exchange程序集 更新 如果您不是构建应用程序的人,而只是提

我正在建一个类库。此库将部署到GAC

在我的库中,我引用了一些外部依赖项。无法将依赖项部署到GAC

当我部署并使用我的库时,它会抱怨它无法加载依赖项


如何部署第三方DLL以便我的程序集可以引用它们?

若要将程序集添加到GAC,您不需要将该程序集的所有引用也包含到GAC中。因此,只要使用程序集的应用程序能够找到所有引用,就没有问题

因此,可以私下部署所有程序集(与应用程序位于同一文件夹中),也可以将它们部署到该GAC中,并只私下部署该exchange程序集

更新

如果您不是构建应用程序的人,而只是提供了一个库,那么同样的规则也适用

你不可能拥有另一个类似GAC但不是GAC的中央文件夹

库的用户应至少在其应用程序中私下部署该程序集。如果您只提供库,并且库的用户进行部署,那么这没有问题

如果不至少要求所有应用程序向应用程序提供程序集,就无法提供安装程序并让所有应用程序使用您的库。对于.Net应用程序来说,这通常不是问题。不使用GAC使得安装基本上是“xcopy部署”


当然,另一个解决方案将不依赖于该组件

反过来说。我的应用程序依赖于无法部署到GAC的DLL。没有应用程序文件夹。没有应用程序文件夹是什么意思?你把你的exe放在哪里?或者,如果它是一个webapp,你的bin文件夹在哪里?程序集部署到GAC。比如说,依赖项位于“c:\stuff”中,没有EXE。为了清楚起见,我编辑了这个问题。我希望它更有意义。现在更有意义了。我已经更新了我的答案,但答案仍然是一样的