2014-05-07 81 views
0

根据微软提供的性能指导,似乎向GAC添加程序集可帮助提高应用程序启动时间的性能。如果我向GAC注册应用程序的程序集,我的项目是否应该引用GAC的程序集或项目引用?WPF应用程序在GAC中注册程序集?

ApplicationFoo.csproj

引用:

Library1.csproj

但我签字,并在GAC注册Library1.dll。

ApplicationFoo.csproj应该在GAC或Library1.csproj中引用Library1.dll吗?

+0

我的应用程序仍然使用金块包(EntLib,PRISM),但这些都是bin文件夹引用。在我加入EntLib5和PRISM程序集后,它们不会出现在添加引用对话框中。所以我不确定如何在GAC中引用程序集。我下载了GACBrowse,我可以在GAC中看到正确的程序集。不知道为什么他们没有出现在添加引用窗口中。 – markti

+0

我认为你回答了你自己的问题,是在GAC中引用这些问题,并确保你已经部署了他们。注意,出于性能方面的考虑,你也可以NGEN。 – Aybe

回答

2

您的项目通常应该引用不在GAC中的程序集,而是在放入版本控制系统的源文件夹中的某处。您无法在GAC中使用程序集来完成此任务。

运行应用程序时,.Net加载器(融合)将首先在GAC中查找并使用那些程序集(如果它可以找到它们的话)。否则,它会在您的exe旁边查找程序集。

因此,尽管您可以通过一些工作从您的项目中引用GAC中的程序集,但您不应该这样做。运行时,可以将程序集放到GAC中,并且不需要为此更改任何内容,但是您可能只想在生产中执行此操作。如果他们不在GAC中,则更容易控制您的开发环境。

相关问题