También encontré el mismo problema y pude resolverlo. Déjame explicarte los pasos que apliqué. Lo explicaré de acuerdo con su escenario.
De acuerdo con mi método, necesitamos usar la clase 'Ruta' y la clase 'Ensamblador' para obtener la ruta relativa.
Entonces, primero importe System.IO y System.Reflection en el uso de declaraciones.
Luego escriba la línea de código dada a continuación.
var outPutDirectory = Path.GetDirectoryName(Assembly.GetExecutingAssembly(). CodeBase);
En realidad, la línea anterior almacena la ruta del directorio de salida de su proyecto (aquí, el directorio de 'salida' se refiere a la carpeta Debug de su proyecto).
Ahora copie su directorio FolderIcon en la carpeta Debug. Luego escriba la línea dada a continuación.
var iconPath = Path.Combine(outPutDirectory, "FolderIcon\\Folder.ico");
Ahora, esta variable 'iconPath' contiene la ruta completa de su Folder.ico. Todo lo que tiene que hacer es almacenarlo en una variable de cadena. Use la línea de código a continuación para eso.
string icon_path = new Uri(iconPath ).LocalPath;
Ahora puede utilizar esta variable de cadena icon_path como su ruta relativa al icono.
Gracias.