2015-05-21 33 views
7

mọi người.Lỗi System.Xml.Xsl.CompiledQuery.Query.staticData khi cố gỡ lỗi XSLT trong Visual Studio

Tôi đã tạo tệp XSLT đơn giản bằng Visual Studio 2010 hoạt động tốt trên máy của tôi. Tuy nhiên khi đồng nghiệp của tôi đã cố gắng chạy nó trên máy tính của mình với Visual Studio 2013 nó thông báo cho cô rằng tệp không thể chạy và tạo ra thông báo này:

Cố gắng theo phương pháp 'System.Xml.Xsl.XslCompiledTransform.Load (System.Type) 'để truy cập trường' System.Xml.Xsl.CompiledQuery.Query.staticData 'không thành công.

Tuy nhiên, tôi đã sao chép văn bản vào tệp của mình và dán nó vào tệp xslt trống mới trên máy của cô ấy (với VS 2013) và lưu nó với tên khác. nó hoàn toàn giống với bản gốc của tôi. Nó như thể có một số vấn đề tương thích ngược đang diễn ra. Có ai khác đã trải nghiệm điều này và nếu bạn biết về bất kỳ sửa chữa cố định nào thì chúng tôi không phải sao chép và dán tất cả thời gian? Tệp xslt đang được chạy từ một ổ đĩa cục bộ.

Rất cám ơn trước.

+0

trừ khi bạn may mắn và có người đọc đã cố định vấn đề này chính xác, bạn sẽ làm tốt hơn để bao gồm các mẫu nhỏ nhất có thể minh họa vấn đề này. Sau đó, bất cứ ai cũng có thể áp dụng các kỹ năng phân tích của họ vào vấn đề của bạn. Chúc may mắn! – shellter

Trả lời

4

Thay đổi mã hóa từ UTF-8 thành ANSI (hoặc bất kỳ mã hóa nào khác) và quay lại UTF-8 đã sửa nó cho tôi. Không khác nhiều so với việc tạo một tệp mới, nhưng dễ dàng hơn một chút.

+0

Tôi đã mở các tệp trong Notepad ++ và thay đổi từ "Mã hóa trong UTF-8-BOM" thành "Mã hóa bằng UTF-8".Dường như có một BOM (Byte Order Mark) đã gây nhầm lẫn cho Studio 2013 và XSLT –

+0

@JohnDyer có thể là, hoặc nó chỉ có thể là một thực tế rằng bạn đã thay đổi mã hóa. –

+1

@JonList Như đã thấy trong câu trả lời của tôi, điều này có vẻ là một vấn đề với tính năng bảo mật trên các tệp được tải xuống từ internet. Vì vậy, mã hóa có lẽ là một cá trích đỏ. Nó có thể chỉ đơn giản là sửa đổi các tập tin và resaving xóa "tải về từ internet" cờ. – JLRishe

1

Mã hóa không hoạt động đối với tôi, nhưng tôi đã giải quyết. Tôi nhận được lỗi này trong VS 2015 vì vậy lỗi này đã được khoảng một thời gian.

Không thực hiện theo cách này: Để kiểm tra biến đổi, tôi thường mở xslt bằng con trỏ trong đó và trên menu trên cùng, nhấp vào xml-> start xslt debugging-> duyệt đến tệp xml

Thực hiện theo cách này: làm điều ngược lại ở trên, tức là, mở tệp XML (không phải là xslt), sau đó nhấp vào xml-> start xslt debugging-> duyệt đến tệp XSLT.

Không chắc chắn lý do tại sao nó hoạt động, nhưng nó hoạt động.

15

Cả hai câu trả lời ở đây làm việc cho tôi, nhưng một trong những workarounds trong báo cáo lỗi MS Connect đã làm việc cho tôi nhiều lần:

  1. mở thuộc tính của tập tin XSLT trong Windows Explorer
  2. Trên tab Chung, tìm nút Bỏ chặn.
  3. Nhấn vào nó, sau đó nhấn OK

Nó có vẻ như có một số loại tính năng bảo mật các học trò ở đây mà phát hiện rằng các tập tin có nguồn gốc từ máy khác và nó hà lên một cái gì đó trong trình gỡ lỗi XSLT.

+0

nó cũng hoạt động cho tôi. – Rashmin

+0

Điều này chắc chắn hoạt động! Nice bạn đặt ở đây – goldenlimit

0

Vấn đề đối với tôi là tệp xslt nằm trên ổ đĩa mạng. Di chuyển tệp đến ổ đĩa cục bộ trên máy của tôi đã khắc phục sự cố.

Got ý tưởng từ Microsoft's feedback forum

Các vấn đề liên quan