【问题标题】:app_code find assemblyqualifiedname of classapp_code 查找类的程序集限定名称
【发布时间】:2013-11-04 12:07:09
【问题描述】:

我一直在关注 Scott Gutheries 博客,了解如何自动启动 ASP.Net 应用程序并遇到程序集名称问题。

首先我一直关注的网站是:

http://weblogs.asp.net/scottgu/archive/2009/09/15/auto-start-asp-net-applications-vs-2010-and-net-4-0-series.aspx

我已将以下代码添加到我的 applicationHost 配置文件中,您可能已经猜到,由于类型定义,它不起作用。

<serviceAutoStartProviders>
        <add name="PreWarmMyCache" type="MyWebSiteName.PreWarmCache, MyWebSiteName" />
</serviceAutoStartProviders>

我四处寻找解决方案,发现了这个简洁的代码。

Dim _a as New MyApp.PreWarmCache()
_a.GetType().AssemblyQualifiedName

这会产生以下结果。

"MyApp.PreWarmCache, App_Code.<#########>, Version=0.0.0.0, Culture=neutral, PublickKeyToken=null"

我的问题来自上述程序集名称中的#########,因为它每次运行时都是唯一的,因此我无法在上面的 applicationHost 文件中使用它。

有没有办法固定该值,使该值固定不变?

【问题讨论】:

    标签: asp.net assemblies app-code


    【解决方案1】:

    如果您想要控制为站点生成的程序集名称和版本号,您应该在 Visual Studio 中使用 Web 应用程序项目而不是网站项目。 您可以在 msdn 上阅读这两种类型的项目:Web Application Projects versus Web Site Projects in Visual Studio

    对于应用程序项目,程序集名称不会因每次构建而改变,您可以轻松引用程序集。

    要从一种类型的项目迁移到另一种类型的项目,您可以在这里找到建议:Converting a Web Site Project to a Web Application Project

    【讨论】:

      【解决方案2】:
      1. 向您的 ASP.NET 网站解决方案添加一个新的类库项目并将其命名为 Startup

      2. 在此库中创建一个名为“ApplicationPreload”的新类,该类实现 IProcessHostPreloadClient。

      3. 将新的 Startup 类库添加为 ASP.NET 网站中的参考

      4. 编译您的解决方案,将 Startup.dll 添加到您网站的 Bin 目录

      5. 将以下内容添加到您的 applicationHost.config 文件中的 部分

        <serviceAutoStartProviders>
            <add name="ApplicationPreload" type="Startup.ApplicationPreload, Startup, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" /
        </serviceAutoStartProviders>
        

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2010-11-27
        • 1970-01-01
        • 2010-10-01
        • 2011-02-06
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多