היי,
מדי פעם אנחנו מעוניינים לגלות היכן Assembly הטעון באפליקציה שלנו ממוקם על הכונן הקשיח של המחשב עליו רצה האפליקציה.
לשם כך, ניתן לגשת לProperty ששמו CodeBase:
|
|
זה נותן לנו כמעט את מה שאנחנו רוצים.
מה הבעיה? שאנחנו מקבלים את התוצאה כUri עם הקידומית file:// והרבה סלאשים (/) במקום בק סלאשים (\).
זה עלול ליצור בעיה במידה ואנחנו מעוניינים בהמשך לגשת דרך האפליקציה שלנו לקובץ פיזית ולבצע עליו דברים.
הפתרון המתבקש:
נראה טוב.
מסתבר שזה לא מספיק טוב: אם במקרה הDLL נמצא בתיקייה עם התו המיוחד #, נקבל תוצאה לא רצויה.
|
|
מה קורה כאן? הUri מתייחס ל# בתור חלק מפריד של הUri ולכן לא מכניס את כל מה שנמצא שהחל ממקום זה לLocal path.
איך ניתן להתגבר על הבעיה? הפתרון המוצע מStackOverflow (תודות לג’ייסון פיין):
|
|
קצת מכוער, אבל עובד 😃
יום טוב מקומית