Я предполагаю, что вы не нацелены на .NET 3.5;в противном случае вы можете установить флажок в свойствах развертывания, чтобы он автоматически создавал ярлык на рабочем столе.
Я думаю, именно поэтому возникла проблема, с которой вы начали сталкиваться.Я думаю, что в .NET 3.5 SP-1 Microsoft начала удалять ярлык на рабочем столе, если он существовал, предполагая, что вы собираетесь использовать .NET 3.5, и он поставит ярлык на рабочем столе для вас.Разве это не так?
Для людей (таких как я), которые не ориентированы на .NET 3.5 или .NET 4.0, вы можете добавить немного кода в запуск вашей программы, который будет создавать ярлыки на рабочем столе каждый развремя, когда пользователь запускает приложение (или когда угодно).Для получения дополнительной информации, прочитайте этот блог .