错误ASPPARSE:无法加载类型

gtlvzcf8  于 2023-04-08  发布在  .NET
关注(0)|答案(3)|浏览(181)

如果我在我的系统上运行这个命令

<Exec Command="C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\aspnet_compiler -v localhost -p $(SourceDir)\wwwroot -u -f projectCompileCode\project -c -errorstack -nologo" />

我得到以下错误:
错误ASPParse:无法加载类型:项目名称:SomeFile。
该项目是Web应用程序项目
这是我的堆栈跟踪:
[HttpException]:无法加载类型“ProjectName. Filename”。位于System.Web.UI.TemplateParser.PostProcessMainDirectiveAttributes(IDictinary parseData)的System.Web.UI.TemplateParser.ProcessInheritsAttribute(String baseTypeN me,String codeFileBaseTypeName,String src,Assembly assembly)的System.Web.UI.TemplateParser.GetType(String typeName,Boolean ignoreCa e,Boolean throwOnError)
[HttpParseException]:无法在System.Web.UI.TemplateParser.ParseString中加载类型“ProjectName.FileName.(Stringtext,VirtualPathvirtalPath,EncodingfileEncoding),位于System.Web.UI.TemplateParser.ParseReader(StreamReader阅读器,VirtualP第virtualPath),位于System.Web.UI.TemplateParser.ParseFile(String physicalPath,虚拟路径)位于系统.Web.用户界面.模板解析器.解析器内部()at System.Web.UI.TemplateParser.Parse()位于System.Web.Compilation.BaseTemplateBuildProvider.get_CodeCompilerType(位于System.Web.Compilation.BuildProvidersCompiler的System.Web.Compilation.BuildProvider.GetCompilerTypeFromBuildProvider(uildProvider buildProvider)。ProcessBuildProvider()位于System.Web.Compilation.BuildProvidersCompiler.PerformBuild()位于System.Web.Compilation.ApplicationBuildProvider.GetGlobalAsaxBuildResu t(Boolean isPrecompiledApp)位于System.Web.Compilation.BuildManager.CompileGlobalAsax()位于System.Web.Compilation.BuildManager.EnsureTopLevelFilesCompiled()位于System.Web.Compilation.BuildManager.PrecompileAppInternal(VirtualPath tartingVirtualDir)位于System.Web.Compilation.BuildManager.PrecompileApp(VirtualPath启动irtualDir)位于System.Web.Compilation.BuildManager.PrecompileApp(ClientBuildManagerCa lback回调)位于System.Web.Compilation.BuildManagerHost.PrecompileApp(ClientBuildManag rCallback回调)位于System.Web.Compilation.BuildManagerHost.PrecompileAppSystem.Web.Compilation.ClientBuildManager.PrecompileApplication中的(ClientBuildManagrCallback回调)(客户端uildManagerCallback回调,System.Web.Compilation.ClientBuildManager.PrecompileApplication上的Boolean forceCleanBuild)(客户端uildManagerCallback回调),位于System.Web.Compilation.Precompiler.Main(String[] args)
如果我在v2.0.50727中构建,那么它仍然给出相同的错误。
我的应用程序是内置的VS 2010,.net框架asp.net框架4
任何帮助都非常感谢。

zengzsys

zengzsys1#

你试过:

  • 检查参考文献
  • 做一个清理和重建
  • 检查HTML中的Inherits属性与后面的代码
  • 正在IIS中为此网站创建新的应用程序池?

我看到了一个类似的问题。从VS 2008内部在本地工作,但是一旦发布并部署到服务器,我就会得到与这里描述的相同的错误。
我提供的建议没有一个对我起作用;也许他们会为你工作。

uelo1irk

uelo1irk2#

我遇到了同样的错误。当我在ILDASM中打开网站DLL时,控件的类型完全丢失,就好像它甚至没有被编译一样。
事实证明,代码隐藏文件被排除在项目之外。考虑到我的机器上的构建是成功的,这很奇怪!无论如何,我小心地重新包含代码隐藏文件,一切都开始工作。

wrrgggsh

wrrgggsh3#

这种情况经常发生,因为项目文件(.csproj或.vbproj)不包含对有问题的文件的必要引用。请尝试清理/重建所有项目,并确保将最新的项目文件也移动到服务器。
另一种可能性是该文件实际上根本没有包含在您的项目中。这使得Visual Studio中的构建可以正常运行,但在编译.NET代码(例如aspnet_compiler)时会中断,因为指定文件夹中的所有.aspx/.ascx/等文件都已编译-无论它们是否包含在您的项目中。

相关问题