דף הבית > תכנות > Tip: Setting a startup project in the .sln file

Tip: Setting a startup project in the .sln file

הכנתי פרויקט Lib מסוג Class Library והכנתי פרויקט Demo (שמשתמש ב Lib) מסוג Console Application, ושניהם באותו solution.
שמרתי הכל, והגדרתי שה Demo יהיה ה startup project. הגיוני.
ועכשיו רציתי לשים את הכל כדוגמה לפוסט, אז כיווצתי הכל ל zip.

רק שניה, לפני שאני מעלה את זה, רק כדי לוודא שהכל עובד, אני פותח את הזיפ בתיקיה חדשה וריקה, ומשם פותח את ה Visual Studio 2008 ולוחץ F5 כדי להריץ… ופתאום הוא בוכה שאי אפשר להריץ Class Library, ואני הרי זוכר שממש לפני דקה הגדרתי שה startup project יהיה ה Demo. 😡

טוב, בטח אני לא הראשון שנתקל בזה, אז קדימה לגגל!
הגעתי (איך לא) לדיון דומה ב stackoverflow.com, וגם לפוסט בנושא בבלוג של Arian Kulp.
מה מסתבר? שההגדרה של ה startup project לא נשמרת ב sln, אלא ב suo. 😯
יש דרך לעקוף את זה:
פותחים את קובץ ה sln באיזה text editor כמו notepad (אני אישית מעריץ נלהב של NPP), ושם יש שורות כמו אלו:

Microsoft Visual Studio Solution File, Format Version 10.00
# Visual Studio 2008
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Lib", "Lib\Lib.csproj", "{F959D3D9-052F-4C62-B957-BF6459CB2209}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Demo", "Demo\Demo.csproj", "{852E3624-B5EB-40DF-A2EE-481037C8F47B}"
EndProject

פשוט מעבירים את החלק של Project…EndProject של הפרוייקט הרצוי להיות הראשון. בהמשך לדוגמה הזו, המצב הרצוי הוא:

Microsoft Visual Studio Solution File, Format Version 10.00
# Visual Studio 2008
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Demo", "Demo\Demo.csproj", "{852E3624-B5EB-40DF-A2EE-481037C8F47B}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Lib", "Lib\Lib.csproj", "{F959D3D9-052F-4C62-B957-BF6459CB2209}"
EndProject

וזה עושה את העבודה.

שימושי כשרוצים להוסיף פרויקט דוגמה לפוסט, ו/או בפרויקטים של קוד פתוח ברשת.
תוכלו לנסות בעצמכם 🙂

קטגוריות:תכנות תגיות:,
  1. אין תגובות עדיין.
  1. אין הפניות עדיין.

Quantcast