这个问题很相似,但我认为不一样了
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
没有其他错误,也没有其他信息!
任何人都可以帮助我开始追踪这个吗?
答案 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)
我也面临同样的问题,然后我按照步骤进行操作。
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