سلام
تو اجرای فایل Dll هیچ مشکلی پیش نمیاد ولی من از ورژن واقعی اون با هبر نمیشم به خاطر همین ورژن آخرین کد نویسی توی فایل هارو توی 1 فایل دیگه به صورت استرینگ قرار میدم
و برای خوندن ورژن فایل ها اون فایل رو میخونم اینجوری خوبه ؟
خوب است.
چون شاید برای بهینه سازی فضا و کاهش حجم و افزایش سرعت دانلود فایلها در سرور فشرده (gzip و cab و zip) و... شده باشند داشتن یک بانک اطلاعاتی و لیستی از نسخه ها بد نیست.
(ولی میتوانید در سرور هم نسخه (ورژن) فایلها را استخراج کنید و فقط باید یک صفحه aspx یا Ashx ساده داشته باشید.)
راهتان خوب است و من فقط برای تکمیل توضیحی دیگر روی راه کارهای مناسب شبیه این مطلبتان بیان خواهم کرد
=====
داشتن یک لیست "فایل+نسخه" در سرور میتوانید مفید و پرسرعت باشد.
حال این لیست شما میتواند در بانک SQLServer و یا Access و یا XML باشد.
اگر قرار است ساده و متنی باشد، بهتر است فرمت XML داشته باشد که قانونمند تر و حرفه ای تر است، مثلاً چیزی شبیه این:
کد:
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
میتوانید یک وب سرویس یا حتی یک aspx یا ashx ساده هم داشته باشد که مثلاً با شکل site.com/upgradecheck.ashx?file=filename.dll بتوان از کلاینت اسم یک فایل را به ان داد و این صفحه خودش بانک SQLServer یا Access یا XML را بخواند و آخرین نسخه(ورژن) موجود را گزارش دهد.
کلاینت نسخه(ورژن) هر فایل را با این صفحه چک میکند و سپس در صورت نیاز دانلود میکند.
=====
حالت دیگری هم میتوانید داشته باشید که لیستتان منسجم و یکپارچه نباشد و به ازای هر فایل filename.dll یک فایل filename.dll.xml متنی هم داشته باشید که مشخصات همان تک واحد فایل را داشته باشید.
کلاینت قبل از دانلود فایلها اول فایلهای کوچک (زیر یک کیلوبایت) filename.dll.xml یا filename.exe.xml را دانلود میکند و فقط در صورت نیاز فایل اصلی را دانلود میکند.
این xml ساده غیر لیستی میتواند فرمت ساده اینچنینی داشته باشد.
کد:
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
==============
البته خودتان بهتر میدانید که کلاینت باید بداند فایلی که الآن دارد چه ورژنی دارد تا بتواند آن را با نسخه سرور مقایسه کند.
که برای اینکار بهتر است حتماً با دادن نسخه جدید AssemblyFileVersion را دستی تغییر دهید و بعد کامپایل کنید تا کلاینت با خواندن AssemblyFileVersion فایلهایش بتواند وجود نسخه(ورژن) فعلی را تشخیص داده و وجود نسخه(ورژن) جدید آنها را بررسی کند.
برای خواندن مقدار AssemblyFileVersion هم در برنامه تان میتوانید از دستور زیر استفاده کنید:
System.Diagnostics.FileVersionInfo.GetVersionInfo
(حتماً اینکار را حداقل در کلاینت انجام دهید و این عدد را با عدد اخرین ورژن سرور مقایسه کنید تا مشکل آپدیت مدام نداشته باشید و هر آپدیت نسخه(ورژن) فقط یکبار انجام شود.)
موفق باشید.