قرار دادن فایل های گزارش استیمول سافت در فایل exe پروژه سی شارپ
چطور یک گزارش ساخته شده از استیمول سافت رو که به پروژه سی شارپمون اضافه کردیم رو داخل exe خروجی پروژه مون بذاریم
یعنی نیازی به آدرس فایل C:\MyCsharpProject\ MyReport.mrt به این شکل نباشه فقط با اجرا کردن فایل اجرایی Exe نرم افزار بتونه گزارش رو اجرا کنه
چون همراه داشتن فایل mrt گزارش (Report) امنیت هم نداره
آیا راهی هست ؟
مهندسان عزیز دلیل این کارم به خاطر این مشکل هستش که روی سیستم خودم نرم افزار به درستی اجرا میشه اما روی سیستم کلاینت این خطا رو میده :

در حالی که فونت ها نصب هستش
ممنون میشم روی این مسیله وقت بذارید و کمک کنید
باتشکر از همگی
این مشکل هم مرتبط به موضوضع بالاست : ارسال فونت به گزارش استیمول سافت
پاسخ هوش مصنوعی
برای قرار دادن فایل های گزارش استیمول سافت (.mrt) داخل فایل اجرایی (.exe) پروژه سی شارپ بدون نیاز به آدرس دهی مستقیم، می توانید مراحل زیر را دنبال کنید:
1. **اضافه کردن فایل ها به پروژه:** ابتدا فایل های گزارش (.mrt) را به پروژه سی شارپ خود اضافه کنید. روی پروژه کلیک راست کنید، گزینه "Add" را انتخاب و سپس "Existing Item" را انتخاب کنید. فایل های مورد نظر را انتخاب کنید.
2. **تنظیمات Properties:** پس از اضافه کردن فایل ها، روی فایل .mrt کلیک راست کرده و Properties آن را باز کنید. در پنجره Properties، گزینه "Copy to Output Directory" را به "Copy if newer" یا "Copy always" تغییر دهید. این کار باعث می شود فایل هر بار به پوشه خروجی کپی شود.
3. **بارگذاری فایل گزارش از منابع:** هنگام بارگذاری فایل گزارش در کد خود، می توانید از روش زیر برای بارگذاری آن بدون نیاز به آدرس دهی مستقیم استفاده کنید:
using System.Reflection;
using Stimulsoft.Report;
private void LoadReport()
{
// استفاده از Assembly.GetExecutingAssembly() برای دریافت آدرس فایل
var assembly = Assembly.GetExecutingAssembly();
// استخراج فایل .mrt از منابع
var resourceName = "YourNamespace.MyReport.mrt"; // نام فضایی و نام فایل شما
using (var stream = assembly.GetManifestResourceStream(resourceName))
{
if (stream != null)
{
StiReport report = new StiReport();
report.Load(stream);
// سایر کدهای مربوط به نمایش گزارش
}
else
{
MessageBox.Show("فایل گزارش پیدا نشد.");
}
}
}
در این کد به جای "YourNamespace.MyReport.mrt" نام فضایی (namespace) و نام فایل گزارش خود را وارد کنید.
با این کار، دیگر نیازی به نگه داری فایل .mrt در سیستم نیست و می توانید گزارش را به صورت مستقیم از منابع خود بارگذاری کنید. بدین ترتیب، امنیت بهتری نیز خواهید داشت.
در رابطه با خطایی که دارید لینک زیر رو ببینید :
رفع خطای Font 'x' dose not support style در استیمول سافت
اما در مورد اینکه فایل های گزارش رو کجا قرار بدید که توی کلاینت نمایش داده بشه شما باید در پوشه debug و یا release پروژه خودتون فایلهای گزارش رو قرار بدید. چون فایل exe و یا فایل نصبی که ایجاد می کنید و به کلاینت می برید از این دو فولدر ساخته میشه. در واقع فایل های exe، dll و همه فایل های اجرایی پروژه در این دو فولدر هست.
- کار نکردن navBar و sideBar در پروژه Asp.net core
- خطا موقع استفاده از Api در سی شارپ
- آموزش استفاده از پلاگین گردونه شانس در Asp.net core به همراه سورس
- نمایش متن به صورت فرمت شده در CkEditor
- آموزش استفاده از SignalR در Asp.net Core با مثال عملی
- ادغام چند گزارش استیمول سافت بصورت پی دی اف در یک فایل
- نحوه تغییر استایل کامپوننت select2 چگونه است ؟
- چگونه امنیت پروژه را در Asp.net Core افزایش دهیم ؟
- ارسال پارامتر در دستور window.open جی کویری
- ارسال پارامتر از طریق جاوااسکریپت با کلیک روی تگ a
- مشکل تاریخ شمسی در سی شارپ
- نمایش گزارش stimulsoft روی کلاینت
- تفاوت های سی شارپ 8 با نسخه های قبلی چیه؟
- انتخاب چند سطر دلخواه توسط چک باکس در DataGrid و محاسبه جمع سطرهای انتخاب شده
- نمایش نوتیفکیشن در سی شارپ
- ارسال پارامتر از سی شارپ به استیمول سافت
- عدم نمایش عکس در دیتاگرید ویو در wpf
- Library Animation برای کنترلهای WPF
- مشکل در تغییر مقدار Text کنترل RibbonBar در کامپوننت DevExpress
- قرار دادن مقادیر ارسالی یک ستون از جدول به صورت سطری در استیمول