В Visual Studio 2013 я делаю VsPackage, который выполняет вызовы внешнего инструмента кросс-компиляции, который может создавать для Windows или Linux.
Я хотел бы добавить linux32 и linux64 в качестве выбираемых платформ при установке моего vspackage (в дополнение к уже имеющимся Win32 и x64). Пользователю не нужно вручную добавлять какие-либо платформы (мой vspackage должен инициализировать платформы, готовые для их выбора).
Это делается для того, чтобы я мог определить строку имени платформы в моем пакете и скомпилировать соответствующие настройки для этой платформы.
После некоторых исследований я попытался сделать это так:
_applicationObject = (DTE)GetService(typeof(DTE));
EnvDTE.Project project;
project = _applicationObject.Solution.Projects.Item(1);
project.ConfigurationManager.AddPlatform("Linux32", "Win32", true);
Но он возвращает исключение аргумента.
An exception of type 'System.ArgumentException' occurred in package_test.dll but was not handled in user code
Additional information: The parameter is incorrect. (Exception from HRESULT: 0x80070057 (E_INVALIDARG))
Каков правильный способ добавления платформы из VsPackage (то есть программно)?
Задача ещё не решена.