Как установить целевую платформу для вызова SolutionBuild.BuildProject в пакете VisualStudio2012

У меня есть решение, в котором есть множество проектов, созданных с помощью nmake. Я пытаюсь написать расширение для VS2012, которое просто вызывает сборку для запускаемого проекта, установленного в среде IDE, поскольку основной активный проект сборки f5 часто не является запускаемым проектом. Мне удалось получить запускаемый проект, найдя все проекты в интерфейсе EnvDTE.Solution и сравнив уникальные имена с теми, что находятся в коллекции Solution.StartupProjects, и использовал функцию Solution.SolutionBuild.BuildProject. Однако мое решение может быть построено как для платформ win32, так и для x64, и эта функция не имеет метода установки того, какой из них будет построен, можно указать только конфигурацию. В результате, независимо от того, какую платформу я установил в среде IDE, она всегда строит платформу Win32. Если я извлекаю интерфейс EnvDTE80.SolutionConfiguration2 из метода ActiveConfiguration, он показывает, что ActiveConfiguration имеет правильную платформу. Пропустил ли я метод создания либо запускаемого проекта, либо конкретного проекта с использованием ActiveConfiguration, либо метода определения платформы?

Любая помощь будет принята с благодарностью.


person Teknogrebo    schedule 03.02.2016    source источник


Ответы (1)


См. Раздел «Статьи о конфигурациях / платформах сборки» на моем веб-сайте.

http://www.visualstudioextensibility.com/articles/add-ins/

В частности, начните с:

HOWTO: получить или установить активную конфигурацию / платформу решения из надстройки Visual Studio

person Carlos Quintero    schedule 03.02.2016
comment
Спасибо за ответ на мой вопрос, я действительно наткнулся на ваши страницы, когда исследовал проблему, и они очень мне помогли. Однако ничего, что я там прочитал, не решило мою проблему. Чтобы повторить это, кажется, есть два метода создания сборки: с помощью метода SolutionBuild.Build () и SolutionBuild.BuildProject (). Build построит все решение, а BuildProject игнорирует платформу, установленную в активной конфигурации. Мне не нужно устанавливать активную платформу, поскольку это уже сделано в IDE, но мне нужен способ сообщить BuildProject () о необходимости создания правильной платформы. - person Teknogrebo; 04.02.2016