2015-05-21 3 views
7

все.Ошибка System.Xml.Xsl.CompiledQuery.Query.staticData при попытке отладки XSLT в Visual Studio

Я создал простой XSLT-файл с помощью Visual Studio 2010, который отлично работает на моей машине. Однако, когда мой коллега попытался запустить его на своем компьютере с Visual Studio 2013 он сообщил ей, что файл не может быть запущен и генерируется это сообщение:

Покушение по методу «System.Xml.Xsl.XslCompiledTransform.Load (System.Type) 'для доступа к полю' System.Xml.Xsl.CompiledQuery.Query.staticData 'не удалось.

Однако, когда я сделал простую копию текста в моем файле и вставить его в новый пустой файл XSLT на ее машину (с VS 2013) и сохранил его с другим именем, то он работает нормально, даже если он полностью идентичен моему оригиналу. Это похоже на проблему с обратной совместимостью. Кто-нибудь еще испытал это, и если да, то знаете ли вы о каком-либо постоянном исправлении, поэтому нам не нужно копировать и вставлять все время? Файл xslt запускается с локального диска.

Большое спасибо заранее.

+0

если вы повезет и кто-то читает закрепил эту точную проблему, вы будете делать лучше включать наименьший возможный образец, который иллюстрирует эту проблему. Тогда любой может применить свои аналитические навыки к вашей проблеме. Удачи! – shellter

ответ

4

Изменение кодировки от UTF-8 до ANSI (или любая другая кодировка) и обратно до UTF-8 исправлено для меня. Не намного отличается от создания нового файла, но немного проще.

+0

Я открыл файлы в Notepad ++ и сменил «Encode in UTF-8-BOM» на «Encode in UTF-8».Похоже, что наличие спецификации (Byte Order Mark) вводит в заблуждение Studio 2013, а XSLT –

+0

@JohnDyer может быть, или это может быть просто факт, что вы изменили кодировку. –

+1

@JonList Как видно из моего ответа, это проблема с функцией безопасности для файлов, загружаемых из Интернета. Таким образом, кодирование, вероятно, является красной селедкой. Вероятно, это просто, что изменение файла и перезагрузка очистили флаг «загрузить из Интернета». – JLRishe

1

Кодировка не работает для меня, но у меня есть обходное решение. Я получаю эту ошибку в VS 2015, поэтому эта ошибка возникла примерно через некоторое время.

Не делать это таким образом: Для теста трансформирует я обычно иметь XSLT открыт с курсором в нем, а затем, в верхнем меню, нажмите xml-> начать debugging- XSLT> перейдите к файлу XML

Сделайте это так: сделайте это противоположно выше, то есть, файл XML откроется (а не xslt), а затем щелкните xml-> start xslt debugging-> перейдите в XSLT-файл.

Не знаете, почему это работает, но это так.

15

Ни один из двух ответов здесь работали для меня, но один из workarounds в сообщении об ошибке MS Connect работает для меня по несколько раз:

  1. свойства Откройте XSLT-файл в проводнике Windows
  2. На вкладке «Общие» найдите кнопку «Разблокировать».
  3. Нажмите ее, а затем нажмите кнопку OK

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

+0

он тоже работает для меня. – Rashmin

+0

Это определенно работает! Приятно, что вы здесь – goldenlimit

0

Проблема для меня заключалась в том, что файл xslt находился на сетевом диске. Проблема с переносом файла на локальный диск на моем компьютере.

Есть идея от Microsoft's feedback forum

Смежные вопросы