在Build期间预编译返回错误ASPNETCOMPILER(0,0):错误ASPRUNTIME:startIndex不能大于字符串的长度

时间:2013-05-05 10:16:34

标签: asp.net msbuild publish visual-web-developer-2010 aspnet-compiler

这个问题很相似,但我认为不一样了

msbuild ASPNETCOMPILER ASPNETRUNTIME startIndex error

我有一个Web应用程序,我试图使用Visual Web Developer 2010 Express发布。

如果我在本地或生产服务器上发布,它没有任何区别,UNCHECK Precompile during publishing一切正常,它将发布并正常工作,没有运行时错误。

但是,如果我检查上面的内容,那么我会收到错误:

Error   1   startIndex cannot be larger than length of string.  ASPNETCOMPILER  0   0   bms

没有其他错误,也没有其他信息!

任何人都可以帮助我开始追踪这个吗?

7 个答案:

答案 0 :(得分:3)

对我来说,清理和重建,删除.obj文件夹等无助于解决错误。

我的解决方案如下

在VS2013中,我右键单击解决方案资源管理器中的项目并选择“发布”,然后在发布对话框中选择“设置”。然后我扩展了'文件发布选项'。然后我点击了“发布期间预编译”旁边的配置链接。然后我取消选中“允许预编译的站点可更新”。然后出版为我工作。如果我解除了那个选择,我仍然可以在之后发布。希望这会有所帮助。

答案 1 :(得分:1)

虽然很久以前就提出过这个问题,但我最近遇到了这个错误。

在我的情况下,问题是我使用windows功能压缩了存储项目的驱动器以节省空间。

解压缩存储Web项目的文件夹后,错误消失。

希望得到这个帮助。

答案 2 :(得分:0)

我突然开始得到同样的错误。 我不知道是什么原因引起的,但我发现了一些解决方法。

退出Visual Studio(我在VS2012上) 删除你的obj文件夹 打开Visual Studio,然后重试。

答案 3 :(得分:0)

除了Wayne Brantley建议删除obj文件夹之外,我还使用Visual Studio运行“ Clean ”,然后运行“重建”。这解决了我的问题。

答案 4 :(得分:0)

这是由于我发布到其中包含旧版本的文件夹而导致的。 即在您正在使用的发布配置文件设置中选择“删除发布前的所有现有文件选项。

即。确保你有一个干净的目标构建/发布目录,这样它就不会干扰编译器等。

更新:还要检查工作解决方案的空间中是否没有已发布的文件夹,例如:确保在很远的地方发布当前解决方案树的OUTSIDE。

答案 5 :(得分:0)

我有一个非常类似的问题。我可以在Visual Studio 2012 Pro中运行发布向导,它会发布ok,但是当在命令行上使用msbuild运行它时,它会给出错误“startIndex不能大于字符串的长度”

我发现这是因为我在没有指定配置模式的情况下调用了msbuild。一旦我指定了发布配置就可以了。

这就是我为构建脚本

工作的方法

MSBuild "MySolution.sln" /property:Configuration=Release /property:DeployOnBuild="true" /property:PublishProfile="MyPublishProfile"

希望有所帮助。

答案 6 :(得分:0)

我也面临同样的问题,然后我按照步骤进行操作。

  • 打开控制台。
  • 转到.net框架目录
  • C:\的Windows \ Microsoft.NET \ Framework64 \ v4.0.30319>
  • 执行以下命令

C:\ Windows \ Microsoft.NET \ Framework64 \ v4.0.30319> aspnet_compiler.exe -v / -p C:\ Users \ muralidharand \ Source \ Workspaces \ Personal \ ERPv1 \ ERPWeb \ obj \ Debug \ AspnetCompileMerge \源-u -d C:\ Users \ muralidharand \ Source \ Workspaces \ Personal \ ERPv1 \ ERPWeb \ obj \ Debug \ AspnetCompileMerge \ TempBuildDir -errorstack

  • 然后回到Visual Studio,进行清理,重建和发布。 这在Vs 2013专业版(sp3)中适用于我。