我对系统的理解是 ASP.Net 以几种不同的方式处理引用:
引用的项目通常存储在主目录中的“解决方案”文件中,如果您在记事本中编辑该文件,您应该会看到以下格式的引用:
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ActiveDirectoryHelper", "..\..\DataAccess\ActiveDirectoryHelper\ActiveDirectoryHelper.csproj", "{D1DDF7A2-6F69-4400-92A7-FD7F4CD87FE8}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "XXX.Library", "..\..\DataAccess\XXXLibrary\XXX.Library.csproj", "{F0A396FA-4588-41E8-B072-7121501689FA}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Common", "..\..\DataAccess\Common\Common.csproj", "{F80C48D8-F6AD-43A2-8AB0-7E4A8461D372}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DataAccess", "..\..\DataAccess\DataAccess\DataAccess.csproj", "{F9AEC8CE-6E04-4848-8168-1436EBA4E734}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DataAccess.Tests", "..\..\DataAccess\DataAccessTests\DataAccess.Tests.csproj", "{472C68E1-66AA-486D-9B76-BC72254BB0F9}"
第三方“DLL”,它们通过在“Bin”目录中包含“刷新”文件来存储。如果您使用任何类型的源代码控制,请不要忘记检查这些文件:
(TFS 示例)
如果您打开“刷新”文件,您将看到如下内容:
Library\AjaxControlToolkit.dll
NuGet 我认为要编译更多,请参阅details listed here,了解有关如何处理此问题的策略。
标准和第三方库的,也在“web.config”文件中被提及,我假设它们是这样被引用的:
<add assembly="System.Design, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/>
<add assembly="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
<add assembly="CustomMarshalers, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/>
<add assembly="Microsoft.VisualC, Version=10.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/>
我从未见过有关这些的官方文档,所有这些都是我多年来与 TFS 或 Visual Studio 的斗争中得出的,我希望有一些官方写的东西可供人们参考。微软的官方文档倾向于glaze over 诸如此类的重要细节,当事情打破你的左玩侦探与未记录的低级实现细节......