Resource embedding problem

  • Thread starter Thread starter Srinidhi
  • Start date Start date
S

Srinidhi

I'm trying to embed a report (.rdlc) file in my project. But it always stays
as linked. The 'Persistance' property is grayed & always set to 'Linked at
compile time'.
Upon further inspection i saw that only graphic files, icons & wave files
were able to be embeded. How can i embed other file types? Especially my
report files.
 
Srinidhi said:
I'm trying to embed a report (.rdlc) file in my project. But it always stays
as linked. The 'Persistance' property is grayed & always set to 'Linked at
compile time'.
Upon further inspection i saw that only graphic files, icons & wave files
were able to be embeded. How can i embed other file types? Especially my
report files.
The terminology is confusing. "Linked" here doesn't mean "remains as a
separate file" but "is linked together with the .EXE". A "linked" file is
still embedded in your .EXE, it just isn't embedded in the .RESX file. This
should make no functional difference.

If you really want to stuff it in the .RESX for some reason, you can, but
only clumsily: convert the file to a Base64-encoded string and store it as a
string resource. This has storage overhead and also complicates using the
resource.
 
Hello,
You're right. The resources are actually embeded in the exe. I checked it
inside the exe.
Thanks a lot for telling me. I'd have never known otherwise.
But i wonder why i cannot specify the embeded report name and get the
report.

If i use this code for Eg:
ReportViewer1.LocalReport.ReportEmbeddedResource = "EmbReport1";

This error pops up in the report control
"An error occured during local report processing. The report definition for
report
'EmbReport1' has not been specified"

I have no problem getting the report with this instead
ReportViewer1.LocalReport..ReportPath=***\***.rdlc
 
Srinidhi said:
Hello,
You're right. The resources are actually embeded in the exe. I checked it
inside the exe.
Thanks a lot for telling me. I'd have never known otherwise.
But i wonder why i cannot specify the embeded report name and get the
report.

If i use this code for Eg:
ReportViewer1.LocalReport.ReportEmbeddedResource = "EmbReport1";

This error pops up in the report control
"An error occured during local report processing. The report definition for
report
'EmbReport1' has not been specified"

I have no problem getting the report with this instead
ReportViewer1.LocalReport..ReportPath=***\***.rdlc
I don't know anything about whatever type "ReportViewer1" is, so I can't
really help you there.

If I had to guess, though: try specifying the actual, full name of the
resource. This will usually be "<default namespace>.<full name of the
file>". So it'll probably be "MyApplication.Resources.EmbReport1.rdlc" or
something along those lines. You can get the resource names with
Assembly.GetManifestResourceNames().
 
'ReportViewer1' is just the report viewer control name i've used
I've tried everything possible but i'm still not getting it. I'm at the end
of my wits. I guess i'll give it a break and try again tomorrow :)
Thanks a lot for your help
 
I Finally Got It!
I just had to write it like this.
reportViewer1.LocalReport.ReportEmbeddedResource = "MyApp.Report1.rdlc";
where
reportViewer1 > is the report viewer control's name
MyApp > is the proj name
Report1.rdlc > name of the resource file.
Although i had set the name of the resource entry to 'EmbReport1', i had to
actually give the name of the file (Report1.rdlc)
Thanks for all the help
 
Back
Top