发布asp.net网站给出"对象引用未设置为对象的实例".错误

Joh*_*han 9 asp.net publish visual-studio-2008 web

我厌倦了这个错误.我在网上搜索并尝试了所有可能的建议,我可以找到这个错误.

  1. 删除app_code,构建,添加文件,发布.(不工作)
  2. 删除临时的asp.net文件(不起作用)

最后,我甚至尝试了命令行并获得以下堆栈跟踪.

error ASPRUNTIME: Object reference not set to an instance of an object.

[NullReferenceException]: Object reference not set to an instance of an object.
   at System.Web.Compilation.BuildManager.CopyPrecompiledFile(VirtualFile vfile,
 String destPhysicalPath)
   at System.Web.Compilation.BuildManager.CopyStaticFilesRecursive(VirtualDirect
ory sourceVdir, String destPhysicalDir, Boolean topLevel)
   at System.Web.Compilation.BuildManager.CopyStaticFilesRecursive(VirtualDirect
ory sourceVdir, String destPhysicalDir, Boolean topLevel)
   at System.Web.Compilation.BuildManager.CopyStaticFilesRecursive(VirtualDirect
ory sourceVdir, String destPhysicalDir, Boolean topLevel)
   at System.Web.Compilation.BuildManager.PrecompileAppInternal(VirtualPath star
tingVirtualDir)
   at System.Web.Compilation.BuildManager.PrecompileApp(VirtualPath startingVirt
ualDir)
   at System.Web.Compilation.BuildManager.PrecompileApp(ClientBuildManagerCallba
ck callback)
   at System.Web.Compilation.BuildManagerHost.PrecompileApp(ClientBuildManagerCa
llback callback)
   at System.Web.Compilation.BuildManagerHost.PrecompileApp(ClientBuildManagerCa
llback callback)
   at System.Web.Compilation.ClientBuildManager.PrecompileApplication(ClientBuil
dManagerCallback callback, Boolean forceCleanBuild)
   at System.Web.Compilation.ClientBuildManager.PrecompileApplication(ClientBuil
dManagerCallback callback)
   at System.Web.Compilation.Precompiler.Main(String[] args)
Run Code Online (Sandbox Code Playgroud)

我使用以下命令行:

aspnet_compiler.exe -p d:\code\websites\brokerweb -v / d:\code\websites\published -f -c -errorstack -u
Run Code Online (Sandbox Code Playgroud)

小智 8

当我尝试使用MSBUILD编译项目时,我发生了这个错误 - 它可以在Visual Studio中构建,甚至可以在我的本地浏览器中调试.VS中的Publish选项也有效.但命令行MSBUILD导致项目每次都出错.

我设法通过在我的网站上打开属性页,打开"MSBuild选项"选项卡,并取消选中"允许此预编译站点可更新"选项,然后点击"全部保存"来修复VS 2012中的此问题.


小智 7

我有相同的经验,并从解决方案目录树中删除压缩标志,再次设置编译器工作.


sam*_*miz 5

*.dll.refresh目录中的bin文件指向不再可用的位置时,通常会发生这种情况.删除*.dll.refresh文件应该可以解决问题.