我的问题从一般人开始
The type or namespace name ‘XXXXX’
does not exist in the namespace
‘XXXXX’ (are you missing an assembly
reference?)
现在我认为这只是一个简单的Add Reference to the project,我会在我的路上。但是,即使在添加了对于缺少的组件的引用之后,我的项目也一直在突破。
我找到了解决方案,我不得不在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呢?是否需要?如果我不知道他们中的任何一个,怎么办?
解决方法
这里有另一个SO问题,有一个有用的答案:
What is difference between web.config assemblies element and project file Reference element
本质上它是在Visual Studio中的Web项目和非Web项目之间的差异(据我所知)。
回答你的第二个问题:
这走了很多挖掘,但在这里你去:
文化 – 大多数集会应该是文化中立的(假设这是在应用程序中设置的)。但是,如果您确实有文化敏感的程序集,那么这是您指定程序集文化的地方。
PublicKeyToken – 这是用于签署程序集的公钥/私钥对的公钥。这样可以使.NET能够验证它正在加载的程序集是否正确。
更有用的信息在这里: