Web应用程序项目程序集引用存储在哪里?

时间:2009-07-17 17:15:18

标签: asp.net assemblies web-config

为Web应用程序存储的程序集引用在哪里?

在网站中,当您添加引用时,我会看到在web.config中写入程序集节点的程序集标记。我只是好奇Web应用程序项目如何建立连接以获得正确的本地DLL?

我手动添加引用和应用程序构建,但是dll不会导入到BIN文件夹中,并且组装节点不会像在Web站点中那样在Web配置中创建。我做一个解决方案搜索文本'assembly =“SomeAssembly ...”并没有找到结果。

我很好奇,因为我正在尝试集中更新程序集引用,因为第三方控件供应商定期发布修补程序,我们最终必须运行并更新所有单个页面引用程序集。我能够在Web站点项目中有效地完成这项工作,但我对Web应用程序项目还是比较陌生的。任何建议或链接将不胜感激。我想我正在寻找关于装配和安装的提示ASP.NET Web应用程序项目的控件参考管理。

4 个答案:

答案 0 :(得分:3)

与大多数Visual Studio项目一样,引用保留在项目中。

有两种参考:

项目引用是对同一解决方案中另一个项目的引用。它们看起来像这样:

<ProjectReference Include="..\VBClassLibrary1\VBClassLibrary1.vbproj">
  <Project>{045D7D9F-8E44-4C4B-95F8-620E86593C5B}</Project>
  <Name>VBClassLibrary1</Name>
</ProjectReference>

文件引用是对磁盘上任意文件的引用:

<Reference Include="System.Core">
  <RequiredTargetFramework>3.5</RequiredTargetFramework>
</Reference>

如果展开“引用”文件夹并单击引用,则在“属性”窗口中查看,您将看到两种引用都具有“复制本地”属性。对于项目引用,它默认为true,对于文件引用为false(尽管可能仅在文件位于GAC中时)。更改默认值会添加:

  <Private>False</Private>

答案 1 :(得分:2)

由于程序集未导入到BIN文件夹,并且您的应用程序正常工作,我假设它存储在GAC(全局程序集缓存)中并在引用属性中标记为“copy local = false”。您没有在web.config中看到对程序集的引用,因为程序集后面的代码 - YourApp.dll(始终为Web应用程序创建)包含对该程序集的标准程序集引用。运行应用程序时,它会从GAC加载程序集。

答案 2 :(得分:1)

那些“缺失”的dll可能在Global Assembly Cache中,并且可供所有.NET应用程序使用。

您可以向web.config的pages/controls section添加控件引用,该引用将应用于应用程序中的所有页面。

答案 3 :(得分:0)

我遇到了同样的问题,删除项目目录中的.vs文件夹对我来说解决了这个问题,因为它迫使重新创建.suo文件(尽管叮咬代码)以错误的方式引用了web.config文件目录