1

我们有 VS2010、ASP.NET 4.0 网站(不是 Web 项目)。多个开发人员正在研究它。我需要这个站点来引用 AjaxControlToolkit.dll。因此,我将 AjaxControlToolkit.dll 签入到源代码管理中,然后右键单击网站,转到属性页、引用,单击添加,然后添加 AjaxControlToolkit.dll。

由于我的操作,AjaxControlToolkit.dll 被复制到网站的 BIN 文件夹中。所以,在我的机器上一切正常。但是,我在解决方案或项目文件中的任何地方都没有看到从网站引用 AjaxControlToolkit.dll 的记录。

由于我们没有将 BIN 文件夹或任何 .user 或 .suo 文件签入源代码管理,因此当另一个开发人员获取最新版本时,BIN 文件夹中缺少 AjaxControlToolkit.dll 并且他/她会收到错误,直到他/她添加DLL 到 BIN 文件夹。

有什么方法可以将 DLL 引用添加到网站并使该引用保留在不同的机器上?

谢谢。

4

3 回答 3

3

在我现在的公司,我们在项目中创建了一个名为“ReferencedAssemblies”的文件夹。所有外部(非 .NET)程序集都位于此文件夹中并从中引用。

这样,您还可以保证每当开发人员执行“获取最新”或部署项目时,都会出现对外部程序集的任何更新。

HTH。

于 2012-09-18T15:55:39.667 回答
2

网站没有项目文件,您通常会在这些文件中找到引用,因此除了将程序集放在网站的 bin 或运行站点的机器的 GAC 中之外,您将无法引用程序集。

您将在网站中找到对程序集的唯一引用是 web.config 中的添加程序集标记、页面和用户控件中的注册标记以及 licenses.licx 文件(如果您使用需要许可的控件,例如 Infragistics) .

您的选择是将所有开发机器设置为已经拥有程序集或使用 WebApplicationProject 以便您可以添加包含程序集的文件夹并使用提示路径集或引用路径集添加对项目的引用在您的项目中,以便视觉工作室可以找到程序集。

于 2012-09-19T02:26:17.610 回答
2

您可以将引用的 DLL 存储在源代码控制的“参考”目录中,然后将其相对路径放在网站 /bin 文件夹中的 [dll 名称].refresh 文件中。还要控制 .refresh 文件的源代码。

每次 Visual Studio 编译您的 ASP.NET 网站时,它都会使用 .refresh 文件在“References”目录中查找 DLL 并将其复制到您的 /bin 文件夹中。

例如,如果您的网站引用 ThirdParty.dll,请像这样设置您的结构:

\References
    \ThirdParty.dll
\MySite
    \bin
       \ThirdParty.dll.refresh

然后在 ThirdParty.dll.refresh 中有这一行

../../References/ThirdParty.dll
于 2012-11-02T07:36:53.087 回答