【问题标题】:Where are Web Application Project Assembly references stored?Web 应用程序项目程序集引用存储在哪里?
【发布时间】:2010-11-11 18:58:49
【问题描述】:

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

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

我手动添加引用并构建应用程序,但 dll 未导入 BIN 文件夹,并且程序集节点未在 Web 配置中创建,因为它们在网站中。我对文本 'assembly="SomeAssembly..." 进行了解决方案搜索,但未找到任何结果。

我只是好奇,因为我试图集中更新程序集引用,因为第 3 方控件供应商会定期发布修补程序,我们最终不得不跑来跑去更新对程序集的所有单个页面引用。我能够在网站项目中有效地做到这一点,但我对 Web 应用程序项目相当陌生。任何建议或链接将不胜感激。我想我正在寻找有关 ASP.NET Web 应用程序项目的程序集和控件引用管理的技巧。

【问题讨论】:

    标签: asp.net assemblies web-config


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

        【解决方案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>
        

        【讨论】:

          【解决方案4】:

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

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2013-11-20
            • 2021-05-03
            • 2011-03-26
            • 1970-01-01
            • 2017-04-02
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多