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

Hca*_*tek 11 asp.net assemblies web-config

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

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

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

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

Joh*_*ers 5

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

参考有两种:

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

<ProjectReference Include="..\VBClassLibrary1\VBClassLibrary1.vbproj">
  <Project>{045D7D9F-8E44-4C4B-95F8-620E86593C5B}</Project>
  <Name>VBClassLibrary1</Name>
</ProjectReference>
Run Code Online (Sandbox Code Playgroud)

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

<Reference Include="System.Core">
  <RequiredTargetFramework>3.5</RequiredTargetFramework>
</Reference>
Run Code Online (Sandbox Code Playgroud)

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

  <Private>False</Private>
Run Code Online (Sandbox Code Playgroud)


Dor*_*oby 2

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