[assembly: WebActivator.PreApplicationStartMethod(typeof(MyApp.App_Start.StructureMapMvc), "Start")]
namespace MyApp.App_Start
{
public static class StructureMapMvc
{
public static void Start()
{
var container = IoC.Initialize();
DependencyResolver.SetResolver(new SmDependencyResolver(container));
}
}
}下面是我的代码,它应该在global.asax中的Application_start之前运行。我将我的web项目从MVC3升级到MVC4,所以在这个过程中,我在命名空间上犯了一个错误。在我更正我的命名空间之前,这是有效的。它现在不再有效了。我重置了iis/flushed dns/ rebuilt解决方案/删除了C:\Windows\Microsoft.NET\Framework64\versionxxxxxx...\Temporary ASP.NET files \ .net中的临时根文件。什么都不管用。我是不是漏掉了什么?Initialize()方法包含了我所有的结构图内容、依赖项解析内容。所以,如果不解决这个问题,我就不能继续前进。我花了很多时间来诊断这个问题,我需要帮助。
发布于 2013-03-13 23:33:06
如果您的代码在网站项目中(即,在App_Code文件夹下),则不能使用PreApplicationStartupMethod!您可以改用PostApplicationStartupMethod。"Pre“方法在global.asax *Application_Start*运行之前执行,而"Post”在运行后执行。
我浪费了一两个小时才弄明白这一点,所以希望这能帮助其他人避免这种情况!
发布于 2013-05-19 17:45:11
我的经验是,如果您的项目设置(在.csproj.user或.vbproj.user中)具有<StartAction>NoStartPage</StartAction>设置,则.csproj.user将无法工作。修复方法是将其设置为<StartAction>CurrentPage</StartAction>,然后在下次调试时它应该可以工作。
此外,由于它位于.user文件(通常不包括在svn中)中,因此很难确定为什么它在某些开发环境中工作,而在其他开发环境中不工作。
发布于 2013-01-04 14:01:17
在WebActivator版本1.5.3中,MyClass.cs.pp文件不能仅位于App_Start文件夹中,而必须位于文件夹中,以便nuget install在目标项目的App_Start中创建转换后的文件。
据我所知,这是没有记录的。
注意:只要原始.nupkg是使用传统的文件系统方法使用nuget pack构建的,而当使用以特定.csproj文件为目标的nuget pack时,而不是,这个解决方案就可以工作。
https://stackoverflow.com/questions/14115497
复制相似问题