Публикация файлов RDLC - PullRequest
       38

Публикация файлов RDLC

29 голосов
/ 14 августа 2010

В моем приложении WPF есть несколько файлов RDLC. Когда я публикую проект, файлы отчета не публикуются, и когда я пытаюсь получить к ним доступ через клиент, я получаю сообщение об ошибке, в котором говорится, что они не найдены. Я проверил папку публикации, и действительно, их там нет. Я вызываю файлы RDLC со следующим кодом:

Microsoft.Reporting.WinForms.ReportViewer rvReportViewer;
/* ... */
rvReportViewer.LocalReport.ReportPath = string.Format("Reports/{0}.rdlc", ReportName);

Я попытался установить для параметра «Действие сборки» значение «Ресурс», что и есть для моих статических файлов изображений, но, похоже, это не имеет никакого значения.

Почему отчеты не копируются в каталог публикации? Есть ли способ заставить это произойти, или я должен получить к ним доступ каким-то другим способом?

Спасибо!

Ответы [ 4 ]

39 голосов
/ 14 августа 2010

Я не знаю, есть ли особые проблемы с файлами RDLC, но вот общий подход к публикации других файлов.

Щелкните правой кнопкой мыши файл в обозревателе решений, выберите Свойства.Установите «Действие построения» на «Содержимое», а «Копировать в выходной каталог» на «Копировать, если новее».

Перейдите на страницу свойств проекта -> Опубликовать. Нажмите «Кнопка файлов приложения», установите флажок «Показать»все файлы ". Установите для" Состояние публикации "значение" Включить (авто) "

Свойства файла

File Properties

ПриложениеФайлы

Publish Properties

36 голосов
/ 09 июля 2013

Некоторое время я использовал ответ @nos, но заметил, что в публикации набор .rdlc-файлов копируется в два места:

  1. Исходное местоположение проекта исходного веб-приложения;
  2. Внутри папки для мусора.

Итак, если бы у меня был \ Reports \ Report1.rdlc, я бы нашел в опубликованном месте:

 1. <published folder>\Reports\Report1.rdlc;
 2. <published folder>\bin\Reports\Report1.rdlc.

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

Я изменил настройки для каждого rdlc-файла на:

Build Action: Content;
Copy to Output Directory: Do not copy.

А теперь во втором месте ничего не пишется.

7 голосов
/ 06 ноября 2015

Извините, ребята, это не имеет ничего общего с «Копировать всегда» или «Копировать, если новее». На самом деле я установил «Никогда не копировать». Эта проблема решается путем изменения действия «Построение» с «Встроенный ресурс» на «Содержимое». Затем при сборке и публикации RLDC файлы будут скопированы в нужное место.

2 голосов
/ 22 июля 2015

вместо использования .ReportPath

  1. ** использовали следующий код:

reportViewer1.LocalReport.ReportEmbeddedResource="[Project
Name].[FolderName if Exist].[ReportName].rdlc";
Затем перестройте проект развертывания.
...