Определение отчета SSRS новее, чем сервер
Я создал несколько отчетов в Visual Studio 2015 со всеми последними обновлениями. Однако, когда я пытаюсь развернуть отчеты, я получаю это сообщение:
Определение этого отчета недействительно или поддерживается этой версией служб Reporting Services.
11:40:28 Ошибка
Определение отчета может быть создано с более поздней версией служб Reporting Services или содержать контент, который не является
11:40:28 Ошибка
хорошо сформированные или недействительные на основе схем служб Reporting Services. Подробности: определение отчета имеет недопустимую цель
11:40:28 Ошибка
namespace ' http://schemas.microsoft.com/sqlserver/reporting/2016/01/reportdefinition ', который нельзя обновить.
Первые строки файла .rdl настраиваются следующим образом:
- Обновить общий путь к источнику данных всех отчетов SSRS для разных путей
- Форматирование ячеек матрицы SSRS
- Отчеты SSRS - множественные выборки Определение нескольких запросов
- # Ужасно даже после использования IIF, чтобы избежать деления на нуль в выражении
- Как получить данные из собственной таблицы ссылок в sql
<?xml version="1.0" encoding="utf-8"?> <Report MustUnderstand="df" xmlns="http://schemas.microsoft.com/sqlserver/reporting/2016/01/reportdefinition" xmlns:rd="http://schemas.microsoft.com/SQLServer/reporting/reportdesigner" xmlns:df="http://schemas.microsoft.com/sqlserver/reporting/2016/01/reportdefinition/defaultfontfamily">
Могу ли я изменить определение схемы? Если да, то к чему? Я пробовал только с 2016 по 2014 год или в 2012 году, но не работал.
Есть ли место, куда я могу пойти, чтобы увидеть действительные определения?
- Определение отчета имеет недопустимое целевое пространство имен rsInvalidReportDefinition
- Динамические параметры SSRS, прошедшие через заголовок страницы
- Обновление каскадных параметров в отчете SSRS для выбора даты
- Параметр SSRS multi-select не может записывать значения с запятой
- Создатель отчетов SSRS, как скрыть конкретное текстовое поле, экспортирующее в Excel
- Записи SSRS не отображаются, когда используется (выберите все), но при выборе особого значения
- Результат SSRS отличается от результата SSMS тем же запросом
- Как создать гистограмму на SSRS
Я на самом деле столкнулся с аналогичной проблемой, когда изменение, которое мне нужно было сделать, привело к ошибке «Недокументированная ошибка / Неверная структура RDL» в 2016 году, поэтому я отредактировал файл RDL, чтобы я мог открыть его в более ранней версии и внести свои изменения. Не слишком сложно, но вам нужно сделать пару изменений тегов.
Для новых отчетов вы, вероятно, должны использовать только старую версию, но для существующих отчетов вы можете это сделать: (я вернулся к 2008 году)
- Изменить тег «Отчет»:
- Удалить MustUnderstand = "df"
- Измените значение xmlns на " http://schemas.microsoft.com/sqlserver/reporting/2008/01/reportdefinition "
- Удалите атрибут xmlns: df.
- Удалите весь блок ReportParametersLayout.
- Удалите тег «df» и его содержимое.
- Удалите теги открытия и закрытия ReportSections и ReportSection (а не контент).
На самом деле написал какой-то сверххудожественный код, чтобы сделать это как часть сообщения в блоге, но ручное редактирование достаточно просто.
В приведенных ниже настройках должна быть установлена правильная версия целевого сервера и RDL, взятая из каталога bin. (или используйте щелчок правой кнопкой мыши).
Принятый ответ значительно сложнее / подвержен ошибкам / вряд ли будет работать через несколько версий ssrs и должен применяться каждый раз при изменении rdl.
Я столкнулся с той же проблемой, и именно так я ее решил,
- Установите свойство TargetServerVersion в свойствах проекта отчета как старую версию сервера отчетов.
- Постройте проект.
- Получите отчет в папке bin и разверните его на старый сервер отчетов.
Формат исходных отчетов и пространство имен будут обновлены до последней версии. Но отчеты в папках bin будут построены для совместимости с целевой версией сервера отчетов.