Задать вопрос
150_Kirill_150
@150_Kirill_150
FX, Python, C# (Unity), Coding, адепт Linux

Как сделать ярлык в C#?

Никак не получается у меня создать ярлычок. Пробовал связку PowerShell и C#, но везде есть статьи с устаревшей System.Management.Automation.dll, которой нет в NuGet. Пробовал через WSH, но тоже никак, ошибка:

error CS0246: Не удалось найти тип или имя пространства имен "WshShell" (возможно, отсутствует директива using или ссылка на сборку).
error CS0246: Не удалось найти тип или имя пространства имен "WshShell" (возможно, отсутствует директива using или ссылка на сборку).
error CS0246: Не удалось найти тип или имя пространства имен "IWshShortcut" (возможно, отсутствует директива using или ссылка на сборку).
error CS0246: Не удалось найти тип или имя пространства имен "IWshShortcut" (возможно, отсутствует директива using или ссылка на сборку).

Мой код был таков:

using IWshRuntimeLibrary;

namespace HelloApp
{
    class Program1
    {
        public static void Create(string ShortcutPath, string TargetPath)
        {
            WshShell wshShell = new WshShell(); //создаем объект wsh shell

            IWshShortcut Shortcut = (IWshShortcut)wshShell.
                CreateShortcut(ShortcutPath);

            Shortcut.TargetPath = TargetPath; //путь к целевому файлу

            Shortcut.Save();
        }

        static void Main()
        {
            Create(@"C:\test.lnk", @"C:\Windows\notepad.exe");
        }
    }
}

Что я не так делаю?
  • Вопрос задан
  • 1329 просмотров
Подписаться 1 Простой 1 комментарий
Решения вопроса 2
@kisaa
Вам же пишет в сообщении об ошибке: не добавлена ссылка на сборку
https://stackoverflow.com/a/4909475
Ответ написан
которой нет в NuGet

Кто сказал? https://www.nuget.org/packages/System.Management.A...
Вот нашёл в нугете либу под .netstandard, которая умеет создавать ярлыки:
https://www.nuget.org/packages/Shellify/
ShellLinkFile.CreateAbsolute(@"C:\Program Files\My awesome app\app.exe").SaveAs("./link.lnk");
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы