Я столкнулся с этой проблемой при преобразовании решения VS2008 в решение VS2010. Решение VS содержит чуть более 70 проектов C ++. Я нашел два условия, которые привели к этой ошибке. О первом было сообщено на форуме MSDN (см. http://social.msdn.microsoft.com/Forums/en-CA/winformssetup/thread/884b7d69-8aa6-47f6-8261-30770a45eb09).
Вторым условием является то, что VS2010 не может корректно обновить файл проекта VS2008 .vcproj , когда опция компоновщика использует определенный макрос (то есть опция компоновщика проекта [страницы свойств проекта] [ Свойства конфигурации] [Линкер] [Общие] [Выходной файл] ). В частности, проблема с настройкой «ярлыка» возникла, когда этот параметр был определен с помощью макроса $ (OutDir) . Я объясню немного подробнее.
Я обнаружил, что проблема с установочным ярлыком возникла только для тех немногих проектов, в которых параметр Выходной файл был определен с помощью макроса $ OutDir . Напротив, все другие проекты определяли опцию Выходной файл с использованием макросов $ (SolutionDir) $ (Configuration) - и для этих проектов проблема с «ярлыком» установки не возникала. Я просто заменил $ OutDir на $ (SolutionDir) $ (Configuration) , восстановил проект и обнаружил, что это исправило проблему с настройкой «ярлыка».
Я полагаю, что замена $ OutDir на $ (SolutionDir) $ (конфигурация) заставила ID201 VS2010 обновить файл проекта .vcproj , и это было этот процесс обновления .vcproj , который исправил проблему установки ярлыка. Причина, по которой я это говорю, заключается в том, что я переопределил параметр Output File с помощью макроса $ OutDir , и это НЕ привело к возврату проблемы с настройкой «ярлыка». Я не стал больше заниматься расследованием, потому что уже потратил много времени на поиск решения проблемы.