#visual-studio-2010
#visual-studio-2010
Вопрос:
В течение последних нескольких дней каждый раз, когда я компилирую свое решение (веб-приложение 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, ни другие конкретные сайты). Возможно, это проблема с повторной обработкой, но у меня есть реальные способы обвинить R #, поэтому я хотел бы начать отсюда, прежде чем связываться с ними.
Комментарии:
1. Я тоже вижу проблему, но у меня не установлен resharper. Однако у меня установлен chirpy — а у вас?
2. Нет, насколько я знаю. По крайней мере, это исключает ReSharper.
3. у меня такая же проблема… поэтому я добавил награду к вашему вопросу..
4. У меня такая же проблема, также установлен chirpy.
Ответ №1:
Ошибка, которую вы, ребята, получаете, исходит из библиотеки Jurassic, которая используется надстройкой Chirpy.
Я выполнил короткий поиск в источниках Chirpy и Jurassic и нашел точное место, где генерируется исключение и вызывает описанную вами проблему.
В источниках Jurassic перейдите в JurassicCompilerBinders
каталог и откройте 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) amp;amp; 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);
}
Если вы хотите копнуть немного глубже, вы можете взглянуть на JurassicLibraryArrayArrayInstance.cs
и JurassicLibraryObjectObjectInstance.cs
где public static string ToStringJS(ScriptEngine engine, object thisObject)
реализован. Также в библиотеке Chirpy CSSLint.cs
файл содержит немного интересных строк кода (места, где используется Jurassic).
Должен признать, я не знаю точно, почему вы получаете «неустранимую ошибку» или как проблему можно исправить. Для этого потребуется немало усилий по тестированию / отладке. Кто-нибудь?
В любом случае, не вините Resharper! Это отличное программное обеспечение 😉
Комментарии:
1. Эй, я не виню R #: это потрясающий инструмент, и их поддержка также великолепна 😉 О Chirpy / Jurassic, прежде чем открыть этот вопрос, я даже не знал, что это такое. Действительно, он у меня установлен, но я не помню, почему или когда я его установил. Прямо сейчас мне не нужны его функции, поэтому я могу свободно удалить его и решить проблему.
2. Я был бы рад помочь в тестировании, но проблема исчезла за последние 2-3 недели. Единственное, что изменилось в моей среде, — это версия Parallels Desktop, которую я использую (да, я Mac, но я должен использовать Windows для работы ;): я не могу поверить, что проблема вызвана этим Parallels 🙂
Ответ №2:
Проблема связана с CSSLint. Вы можете либо загрузить исходный код и попытаться его исправить, либо просто отключить его.
Перейдите в меню Инструменты> Параметры> Chirpy> CSSLint
Снимите флажок ‘Запустить CSS Lint’.
Если вы столкнулись с той же проблемой с JS, отключите также JSHint
Комментарии:
1. Точно, на какую среду вы ссылаетесь? В VS2010: Tools -> Option не содержит элемента «Chirpy» В R # есть как инструменты, так и параметры, но не Tools-> Options Это две среды, о которых я могу подумать, но я полагаю, вы говорите о чем-то совершенно другом.
2. Отключил его, все еще происходит. 🙁
3. @rball: проблема заключается в синтаксической ошибке. Смотрите ответ ScottCate. В моем случае это было в результате написания: 35x вместо 35px
Ответ №3:
У меня была эта проблема, и я решил ее, исправив некоторые недопустимые css. в моем случае недопустимый css был (обратите внимание на неуместную точку?)
#exposeMask{.visibility:hidden;}
После исправления опечатки все вернулось к жизни.
Комментарии:
1. 1 Хорошая находка! В моем случае дизайнер шаблонов веб-сайта вводил какие-то странные символы, отличные от ascii, в CSS как часть их «классной» подписи дизайнера (что-то вроде ascii art, но с символами вне набора символов ascii). Несмотря на то, что они были частью комментариев, эти нечетные символы были проблемой. Удаление символов, отличных от ascii, решило проблему! Я запускаю Chirpy 2.
2. Отлично, у меня есть css-файл с 1320 строками с проблемой. Стон. Позвольте мне поискать иглу…
3. Теперь, если бы Chirpy мог только сказать вам, где находится исходная строка для
ToStringJS
ошибки — это было бы потрясающе!4. В моем случае это было в результате записи width: 35x вместо width: 35px
Ответ №4:
Возможно, я немного опоздал на вечеринку, но я только что установил надстройку Chirpy в Visual Studio 2010 и почти сразу начал сталкиваться с этими ошибками.
Я зашел в Tools> Options, затем Chirpy> CSSLint и снял флажок «Запустить CSS Lint». Tada! Больше ошибок нет.
Ответ №5:
Любой, кто сталкивается с этим исключением, пожалуйста, вернитесь к своему представлению (представлениям) и удалите или удалите разделы с комментариями в представлении (представлениях). Почему, когда представление компилируется с комментариями, которые содержат разметку handlebarjs «{{** что-то}} **», тогда компилятор шаблонов Jurassic будет иметь проблемы с компиляцией, вызывая исключение такого типа. Да, я знаю, это сбивает с толку!!