我一直关注Scott Gutheries博客,了解如何自动启动ASP.Net应用程序,并且在程序集名称方面存在问题。
首先,我一直关注的网站是:
我已将以下代码添加到我的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文件中使用它。
有没有办法让这个值固定,所以这个值固定不变?
答案 0 :(得分:1)
如果要控制为站点生成的程序集名称和版本号,则应使用Web应用程序项目而不是Visual Studio中的Web站点项目。 您可以在msdn上了解这两种类型的项目:Web Application Projects versus Web Site Projects in Visual Studio。
对于应用程序项目,程序集名称不会因每个构建而更改,您可以轻松引用程序集。
要从一种类型的项目迁移到另一种类型,您可以在此处找到建议:Converting a Web Site Project to a Web Application Project
答案 1 :(得分:0)
将新的类库项目添加到ASP.NET网站解决方案,并将其命名为启动。
在此库中创建一个称为“ ApplicationPreload”的新类,该类实现了IProcessHostPreloadClient。
在ASP.NET网站中添加新的 Startup 类库作为参考
编译您的解决方案,该解决方案会将Startup.dll添加到您网站的Bin目录中
将以下内容添加到部分下的applicationHost.config文件中
import Foundation
class Website {
var name:String
var pictureLabel:String
init(title:String,pictureLabel:String) {
name = title
pictureLabel = picture
}
}