افزونه فارسي به پارسي را قبل از ارائه در سايت، بر روي يك ماشين مجازي هم تست كردم. براي اين منظور از Microsoft virtual pc استفاده شد. البته در مقابل امكانات VMware شايد حرفي براي گفتن نداشته باشد ولي خوب جهت مقاصد تست نرم افزار بر روي يك سيستم عاري از وسايل برنامه نويسي مناسب است. (براي نصب يك سيستم عامل توسط آن براي مثال ميشود از سي دي آن OS يك فايل ISO تهيه كرد و مسير اين فايل ISO را به ماشين مجازي معرفي كرد . سپس سيستم بوت شده و روال نصب مطابق معمول خواهد بود)
اولين مشكلي كه پس از تست بر روي سيستم مجازي رخ داد، پيغام يافت نشدن اسمبلي مربوط به SQLite بود. نرم افزار word هنگام اجراي افزونههاي دات نت، آنها را در مسيري با يك نامگذاري منحصربفرد كپي ميكند و تنها هم همان اسمبلي افزونه را كپي ميكند و نه ساير موارد همراه را. براي پيدا كردن اين مسير ميشود از روش زير استفاده كرد:
using System.Reflection;
Assembly.GetExecutingAssembly().Location
براي نصب اسمبلي در GAC استفاده از برنامه gacutil توصيه شده است. اين برنامه به همراه SDK دات نت فريم ورك ارائه ميشود و الزامي ندارد كه كاربر نهايي اين برنامه را داشته باشد. خوشبختانه با استفاده از برنامه نويسي هم ميشود يك نمونه از برنامه Gacutil را خودمان ايجاد كنيم (براي مثال ايجاد يك برنامه كنسول و دريافت مسير از طريق آرگومانهاي ارسالي به آن):
new System.EnterpriseServices.Internal.Publish().GacInstall(path);
اين روش در مورد اسمبلي SQLite كه داراي امضاي ديجيتال است كار خواهد كرد. اما اگر قصد داشته باشيد به صورت عمومي از آن استفاده كنيد، بايد ابتدا بررسي كرد كه آيا فايل اسمبلي داراي امضاي ديجيتال است يا خير. براي اين منظور ميتوان مقدار عبارت زير را ارزيابي كرد:
Assembly.LoadFile(path).GetName().GetPublicKey().Length
لازم به ذكر است كه متد معرفي شده براي نصب در GAC در صورت عدم موفقيت هيچ پيغام خطا يا exception ايي را در برنامه توليد نخواهد كرد. اما پيغام خطاي حاصل را در event log ويندوز ميتوان مشاهده كرد.