引用如何在ASP.NET WebForms网站(而不是Web应用程序)中工作?

时间:2014-08-21 09:11:03

标签: asp.net web

我已经接管了一个旧的ASP.NET 网站(而不是 Web应用程序)并且由于我在CI环境中构建它而遇到问题未解决的对Ajax Control Toolkit的引用。

我在本地开发机器上看到相同的错误,可以通过手动添加对AjaxControlToolkit.dll的引用来修复它(项目的NuGet packages.config文件引用了Ajax Control Toolkit)。

但是,ASP.NET网站没有.csproj文件(与Web应用程序不同),因此进行此更改似乎不会更新源代码树中的任何文件。

当我在Visual Studio中构建网站时,我可以看到它将大量其他dll复制到网站的Bin文件夹中。除了AjaxControlToolkit.dll ...

之外的所有内容

所以我的问题是基本的:ASP.NET WebForm网站如何管理他们的引用?

2 个答案:

答案 0 :(得分:1)

Asp.Net网站有一个文件夹Bin。在此文件夹中放置所有引用,您只需将dll文件复制并粘贴到Bin文件夹中即可。

答案 1 :(得分:1)

我对该系统的理解是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”目录中包含“刷新”文件来存储的。如果您使用任何类型的源代码控制,请不要忘记在以下位置检查这些文件:

enter image description here

(TFS示例)

enter image description here

如果您打开“刷新”文件,您将看到以下内容:

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重要的细节,例如这些,以及什么东西打破你的左边玩侦探与未记录的低级实现细节......