Spotkałem też ten sam problem i udało mi się go przezwyciężyć. Pozwól więc, że wyjaśnię kroki, które zastosowałem. Wyjaśnię to według twojego scenariusza.
Zgodnie z moją metodą musimy użyć klasy „Path” i „Assembly”, aby uzyskać ścieżkę względną.
A więc najpierw Import System.IO i System.Reflection w używaniu instrukcji.
Następnie wpisz poniższą podaną linię kodu.
var outPutDirectory = Path.GetDirectoryName(Assembly.GetExecutingAssembly(). CodeBase);
Właściwie powyższa linia przechowuje ścieżkę do katalogu wyjściowego twojego projektu (tutaj katalog 'output' odnosi się do folderu Debug twojego projektu).
Teraz skopiuj katalog FolderIcon do folderu Debug. Następnie wpisz poniższą podaną linię.
var iconPath = Path.Combine(outPutDirectory, "FolderIcon\\Folder.ico");
Teraz ta zmienna „iconPath” zawiera całą ścieżkę do twojego Folder.ico. Wszystko, co musisz zrobić, to zapisać go w zmiennej łańcuchowej. W tym celu użyj poniższego wiersza kodu.
string icon_path = new Uri(iconPath ).LocalPath;
Teraz możesz użyć tej zmiennej łańcuchowej icon_path jako względnej ścieżki do ikony.
Dzięki.