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

问题描述 投票:10回答:4

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

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

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

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

asp.net assemblies web-config
4个回答
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>

2
投票

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


1
投票

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

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


0
投票

我有同样的问题,删除项目目录中的.vs文件夹解决了我的问题,因为它强制重新创建.suo文件(尽管咬代码)引用了错误目录中的web.config文件

© www.soinside.com 2019 - 2024. All rights reserved.