Ben de aynı problemle karşılaştım ve üstesinden gelmeyi başardım. O halde uyguladığım adımları açıklamama izin verin. Senaryonuza göre açıklayacağım.
Yöntemime göre göreceli yolu elde etmek için 'Path' sınıfını ve 'Assembly' sınıfını kullanmamız gerekiyor.
Bu yüzden önce System.IO ve System.Reflection ifadelerini kullanarak içe aktarın.
Ardından aşağıdaki kod satırını yazın.
var outPutDirectory = Path.GetDirectoryName(Assembly.GetExecutingAssembly(). CodeBase);
Aslında yukarıda verilen satır, projenizin çıktı dizininin yolunu depolar. (Burada 'output' dizini , projenizin Debug klasörünü ifade eder ).
Şimdi FolderIcon dizininizi Debug klasörüne kopyalayın. Ardından aşağıda verilen Satırı yazın.
var iconPath = Path.Combine(outPutDirectory, "FolderIcon\\Folder.ico");
Şimdi bu 'iconPath' değişkeni, Folder.ico'nuzun tüm yolunu içerir. Tek yapmanız gereken, onu bir dize değişkeninde saklamaktır. Bunun için aşağıdaki kod satırını kullanın.
string icon_path = new Uri(iconPath ).LocalPath;
Artık bu icon_path dize değişkenini simgeye giden göreceli yolunuz olarak kullanabilirsiniz.
Teşekkürler.