在web.config中添加程序集引用

Mat*_*att 26 asp.net web-config

我有一些关于web.config的常见问题以及它如何与程序集引用有关.我一直在玩新的Razor视图引擎,并且在启动和运行时遇到了一些麻烦.

我的问题始于一般

名称空间"XXXXX"中不存在类型或命名空间名称"XXXXX"(您是否缺少程序集引用?)

现在我认为这只是一个简单的项目添加参考,我将继续前进.但即使我添加了对缺失组件的引用,我的项目也一直在破碎.

我找到了解决方案,我不得不在web.config中添加一个程序集引用.一旦我这样做,一切正常.

首先,我想了解为什么需要添加对web.config的引用来解决此问题.为什么项目参考不够好?

其次,在web.config中添加引用时,我想了解语法.当我看到这样的标记时

<add assembly="System.Web.WebPages" />

我似乎很清楚我正在添加一个名为System.Web.WebPages的程序集.但是我的web.config中的完整语法是

<add assembly="System.Web.WebPages, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />

版本似乎是自解释的,但是文化和PublicKeyToken用于什么?他们需要吗?如果我不知道其中任何一个会发生什么,我可以放入任何东西吗?

Sam*_*ill 8

回答你的第一个问题:

这里还有另一个问题,有一个有用的答案:

web.config程序集元素和项目文件引用元素之间有什么区别

基本上它与Visual Studio中的Web项目和非Web项目之间的差异有关(据我所知).

回答你的第二个问题:

这需要相当多的挖掘,但在这里你去:

文化 - 大多数集会应该是文化中立的(假设这是在应用程序中设置的).但是,如果您确实具有区域敏感的程序集,那么您可以在此处指定程序集的区域性.

PublicKeyToken - 这是用于对程序集进行签名的公钥/私钥对的公钥.通过这种方式,.NET可以验证它正在加载的程序集是否正确.

更多有用信息:

http://en.wikipedia.org/wiki/.NET_assembly