Неустранимая ошибка, продолжение невозможно: метод ToStringJS не является универсальным - PullRequest
10 голосов
/ 07 октября 2011

В последние пару дней каждый раз, когда я компилирую свое решение (веб-приложение MVC 3 + несколько других проектов), я получаю эту ошибку в списке ошибок:

Fatal error, cannot continue: The method 'ToStringJS' is not generic (Site.css, line 1, column 1).

Поскольку ошибка связана с CSS-файлом, очевидно, я могу запустить проект.

Я не вижу ошибок в файле css.

Даже если я удаляю все содержимое файла css, я получаю эту ошибку.

Однако подсветка кода исчезла, а intellisense и ReSharper продолжают работать.

Я не уверен, где искать эту проблему (Google не дал никакого результата, ни Stack Exchange, ни другие конкретные сайты). Возможно, это проблема ReSharper, но у меня есть реальная возможность обвинить R #, поэтому я бы хотел начать отсюда, прежде чем связываться с ними.

Ответы [ 4 ]

10 голосов
/ 29 ноября 2011

Ошибка, которую вы, ребята, получаете, связана с библиотекой Jurassic , которая используется Chirpy Add-In.

Я сделал краткий поиск в источниках Chirpy и Jurassic и нашел точное место, где выдается исключение и вызывает описанную вами проблему.

В источниках Jurassic перейдите в каталог Jurassic\Compiler\Binders и откройте файл JSBinder.cs. Проблема возникает в методе protected override void GenerateStub(ILGenerator generator, int argumentCount), который сам используется для генерации другого метода ... yadayadayada. Это довольно сложно.

Во всяком случае. Вот код из этого файла, который отвечает за ошибки, которые вы получаете:

// Line 156 (Change Set df266524321d)
// Convert to the target type.
EmitTypeConversion(generator, typeof(object), argument.Type);

if (argument.Type != typeof(ObjectInstance) && inheritsFromObjectInstance == true)
{
   // EmitConversionToObjectInstance can emit null if the toType is derived from ObjectInstance.
   // Therefore, if the value emitted is null it means that the "thisObject" is a type derived
   // from ObjectInstance (e.g. FunctionInstance) and the value provided is a different type
   // (e.g. ArrayInstance).  In this case, throw an exception explaining that the function is
   // not generic.
   var endOfThrowLabel = generator.CreateLabel();
   generator.Duplicate();
   generator.BranchIfNotNull(endOfThrowLabel);
   generator.LoadArgument(0);
   EmitHelpers.EmitThrow(generator, "TypeError", string.Format("The method '{0}' is not generic", binderMethod.Name));
   generator.DefineLabelPosition(endOfThrowLabel);
}

Если вы хотите покопаться немного глубже, вы можете взглянуть на Jurassic\Library\Array\ArrayInstance.cs и Jurassic\Library\Object\ObjectInstance.cs, где реализован public static string ToStringJS(ScriptEngine engine, object thisObject). Также в Chirpy lib файл CSSLint.cs содержит несколько интересных строк кода (места, где используется Jurassic ).

Должен признать, я не знаю точно, почему вы получаете "фатальную ошибку" или как проблему можно исправить. Это потребует немало усилий по тестированию / отладке. Кто-нибудь?

Во всяком случае, не вините Решарпера! Это отличное программное обеспечение; -)

5 голосов
/ 16 декабря 2011

Проблема с CSSLint.Вы можете либо загрузить исходный код и попытаться исправить его, либо вы можете просто отключить его.

Перейдите в Инструменты> Параметры> Chirpy> CssLint

Снимите флажок «Запуск CSS Lint».

Если вы столкнулись с той же проблемой с JS, чем отключить JSHint какхорошо

3 голосов
/ 22 марта 2012

У меня была эта проблема, и я решил ее, исправив неверный CSS.в моем случае неверный css был (обратите внимание на неуместный период?)

#exposeMask{.visibility:hidden;}

После исправления опечатки все вернулось к жизни.

0 голосов
/ 11 декабря 2013

Возможно, я немного опоздал на вечеринку, но я только что установил надстройку Chirpy в Visual Studio 2010 и почти сразу начал сталкиваться с этими ошибками.

Я вошел в Инструменты> Параметры, затемChirpy> CssLint и снят флажок «Запустить CSS Lint».Тада!Больше ошибок нет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...