因此,在安装NUnit之后,程序集(nunit.framework
等)现在出现在References > Add Reference
对话框中,但它们不在%WINDIR%\Microsoft.NET\Framework\v2.0.50727
目录中且没有{{ 1}}程序集路径NUnit
的注册表项。
在(i.e. HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramewokr\AssemblyFolder)
安装目录的项目属性参考路径中也没有创建自动条目。他们如何出现在“添加对话框”中?!?!我认为上述方式是程序集在“添加引用”中出现的唯一方式。
答案 0 :(得分:2)
周末我深入研究了这个问题。从我的blog逐字转载:
因为Visual Studio不在GAC中查找引用:
这是设计的。
您可以显式添加文件,如果团队中的其他人已在其他位置安装了文件,则无法正常工作,例如C:\ Program Files \ NUnit 2.4.6与C:\ Program Files \ NUnit -2.4.6。或者(更具体地说,因为这是我今天早上遇到的问题)C:\ Program Files \ NUnit 2.4.6 vs. C:\ Program Files(x86)\ NUnit 2.4.6。注意(x86) - 我的家用电脑是(截至上周末)运行Vista Ultimate x64。
您有几个选择:
这意味着您的项目文件将按名称引用程序集(即名称,版本,公钥令牌,所有爵士乐),并且它在PC上的实际安装位置无关紧要。
但请注意,这在64位上不起作用,因为Visual Studio是一个32位应用程序。你实际上需要在HKEY_LOCAL_MACHINE \ SOFTWARE \ Wow6432Node \ Microsoft \ .NETFramework \ AssemblyFolders下注册你的东西,你应该在两者下注册。
这些键还有相应的HKEY_CURRENT_USER变体,但是(因为漫游),它没有多大用处(因为路径通常是相对于机器的,无论如何)。
答案 1 :(得分:0)
奇怪,[HKEY_CURRENT_USER \ SOFTWARE \ Microsoft.NETFramework \ AssemblyFolders]应该是推动这一点的唯一因素。
也许this page的这个代码段是相关的?
如果安装.NET Framework 3.0 Service Pack 1(SP1),则会添加以下注册表子项:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\AssemblyFolders\v3.0
如果安装.NET Framework 3.5,则会添加以下注册表子项:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\AssemblyFolders\v3.5
答案 2 :(得分:0)
在我安装NUnit时,我有一个注册表项
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\AssemblyFolders\NUnit 2.4.3
它似乎是我的计算机上的这种行为的驱动因素。一旦我删除了该密钥,就没有出现引用。