Предварителната компилация по време на компилация връща грешка ASPNETCOMPILER(0,0): Грешка ASPRUNTIME: startIndex не може да бъде по-голям от дължината на низа

Този въпрос е подобен, но според мен не е същият

msbuild ASPNETCOMPILER ASPNETRUNTIME startIndex грешка

Имам уеб приложение, което се опитвам да публикувам с помощта на Visual Web Developer 2010 Express.

Ако публикувам, локално или на производствен сървър, няма разлика и ОТМЕНЯ ОТМЕТКА Precompile during publishing всичко ще работи добре, ще публикува и ще работи, без грешки по време на изпълнение.

Ако обаче ПРОВЕРЯ горното, тогава получавам грешка:

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

Няма други грешки и няма друга информация!

Може ли някой да ми помогне дори да започна да проследявам това?


person Jamie Hartnoll    schedule 05.05.2013    source източник


Отговори (7)


За мен Clean and rebuild, изтриването на папка .obj и т.н. не помогнаха за разрешаването на грешката.

Моето решение беше следното

Във VS2013 щракнах с десния бутон върху проекта в Solution Explorer и избрах „публикувай“, след което избрах „настройки“ в диалоговия прозорец за публикуване. След това разширих „опции за публикуване на файл“. След това щракнах върху връзката за конфигуриране до „предварително компилиране по време на публикуване“. След това премахнах отметката от „Разрешаване на актуализиране на предварително компилиран сайт“. Тогава публикуването ми свърши работа. Ако отменя този избор, пак мога да публикувам след това. Надявам се това да помогне.

person KnarfaLingus    schedule 23.01.2014
comment
Това беше поправено за мен.. Трябваше да премахна отметката от „Разрешаване на предварително компилиран сайт да бъде актуализиран“, за да работят нещата!! Благодаря :) - person Abdel Raoof Olakara; 08.10.2015

Въпреки че този въпрос беше зададен преди много време, наскоро се натъкнах на тази грешка.

В моя случай проблемът беше, че бях компресирал устройството, където беше съхранен проектът, използвайки функцията на Windows, за да спестя място.

След декомпресиране на папката, където се съхранява уеб проекта, грешката изчезна.

Надявам се това да помогне.

person galmos    schedule 21.10.2015

Изведнъж започнах да получавам същата грешка. Не знам какво го причинява, но открих донякъде заобиколно решение.

Излезте от Visual Studio (аз съм на VS2012) Изтрийте вашата obj папка Отворете Visual Studio и опитайте отново.

person Wayne Brantley    schedule 23.05.2013

В допълнение към предложението на Wayne Brantley за изтриване на папката obj, стартирах и „Clean“, последвано от „Rebuild“, използвайки Visual Studio. Това реши проблема за мен.

person Doug Domeny    schedule 29.08.2013

Имах много подобен проблем. Мога да стартирам съветника за публикуване в Visual Studio 2012 Pro и той ще публикува добре, но когато го стартирам с msbuild на командния ред, ще даде грешка „startIndex не може да бъде по-голям от дължината на низа“

Открих, че това е така, защото извиквах msbuild, без да посочвам режима на конфигурация. След като посочих конфигурацията на изданието, тя проработи.

Ето как го накарах да работи за моя скрипт за компилация

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

Надявам се това да помогне.

person Peter Flannery    schedule 09.02.2014

Причината беше, че публикувах в папка, в която имаше стара публикувана версия. т.е. изберете опцията „Изтриване на всички съществуващи файлове преди публикуване“ в настройките на профила за публикуване, които използвате.

т.е. уверете се, че имате чиста целева директория за изграждане/публикуване, така че да не пречи на компилатора и т.н.

Актуализация: също така проверете дали няма публикувана папка в пространството на вашето работно решение, напр. уверете се, че публикувате ИЗВЪН дървото на вашето текущо решение, далече.

person David d C e Freitas    schedule 17.11.2013
comment
@JPHellemons също така проверете дали няма публикувана преди това папка в пространството на вашето работно решение, напр. уверете се, че публикувате ИЗВЪН дървото на вашето текущо решение, далече. - person David d C e Freitas; 27.06.2014
comment
Благодаря за това допълнение - person JP Hellemons; 27.06.2014

Аз също се сблъсках със същия проблем, след което последвах стъпките.

  • Отворете конзолата.
  • Отидете в директорията на .net framework
  • 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\Source -u - d C:\Users\muralidharand\Source\Workspaces\Personal\ERPv1\ERPWeb\obj\Debug\AspnetCompileMerge\TempBuildDir -errorstack

  • След това се върнете към Visual Studio, изчистете, изградете отново и публикувайте. Това работи за мен в Vs 2013 Professional Edition (sp3).
person Muralidharan Deenathayalan    schedule 13.12.2014