رفع مشکل اجرای برنامه در ویندوز ویستا

شاید تا به حال بریتان پیش آمده باشد که برنامه ای که نوشتید در ویندوز ویستا به دلیل مشکل پرمیشن درست کار نکند مثلا زمانی که برنامه می خواهد با دیتابیس کار  کند یک خطا می دهد که شما امکان دسترسی به این بخش را ندارید.


http://tobyvs.com/wp-content/uploads/2008/05/your-current-account-has-no-administrative-privilege.png


اگر شما در این حالت رو برنامه راست کلیک نمایید و گزینه Run as Administrator را بزنید مورد حل خواهد شد . ولی اگر بخواهید که این مشکل را برای همیشه حل کنید باید دست به دامن Manifest شوید.


مانیفست چیست ؟


مانیفست یک فایلی است که اطلاعاتی در مورد یک اسمبلی خاص در خود نگه میدارد و در واقعه توصیف گره همون اسمبلی می باشد.



مثلا ما می تونیم در مانیفست مشخص کنیم که برادر ویندوز ویستا زمانی که این برنامه خواست اجرا بشه ,  این رو مدیر در نظر بگیر...


مانفیست شما باید مثل مانیفست پاین باشد :



<?xml version="1.0" encoding="utf-8" ?>
    <assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
       <assemblyIdentity version="1.0.0.0"
         processorArchitecture="X86"
         name="someExecName"
         type="win32" />
         <description>Your produvt Description</description>
         <trustInfo xmlns="urn:schemas-microsoft-com:asm.v3"><security>
        <requestedPrivileges>
       <requestedExecutionLevel level="requireAdministrator" />
       </requestedPrivileges>
        </security>
        </trustInfo>
   </assembly>


فقط کافیه تمام کد های بالا رو داخل یه نوت پد کپی کنید و طبق دستورالعمل زیر اون رو  ذخیره کنید :

خوب فرض کنید نام اسمبلی شما یه چیزی مثل اینه SirAsad.exe

پس مانیفست شما باید یه چیزی شبیه این باید باشه SirAsad.exe.manifest


و هر جا که اون اسمبلی رو که میدین ,  باید اون فایل مانیفست هم در کنارش باشه.


یاشیاسیز