Ошибка в Microsoft.visualstudio.vcprojectengine Для в разделе vcdebugsettings
Я пытаюсь автоматизировать процесс настройки параметров удаленной отладки для решения Visual Studio 2015 только с проектами VC++ (Visual C++).
В проекте VSIX я могу получить решение с помощью ENVDTE и попытаться установить настройки remotedebugger с помощью следующих команд. Однако существует ошибка в настройке рабочего каталога remoteDebugger. Это никогда не срабатывает. Все остальные настройки VCDebugSettings работают. Попытка изменить рабочий каталог изменяет только локальный рабочий каталог отладчика. Помогите!!!!
Библиотека DLL Visual Studio, которую я использую, находится по адресу C:\Program файлы (x86)\Microsoft Visual Studio 14.0\Common7\IDE\PublicAssemblies\Microsoft.VisualStudio.VCProjectEngine.dll, которая предназначена для проектов VC++ в Visual Studio 2015.
Сталкивались ли вы с этой проблемой? Я делаю что-то не так или есть обходной путь?
//------------------------------------------------------------------------------ // <copyright file="ToolWindow1Control.xaml.cs" company="Company"> // Copyright (c) Company. All rights reserved. // </copyright> //------------------------------------------------------------------------------ namespace VSIXProject1 { using System.Diagnostics.CodeAnalysis; using System.Windows; using System.Windows.Controls; using Microsoft.VisualStudio.Shell; using Microsoft.VisualStudio.VCProjectEngine; using EnvDTE; using EnvDTE80; /// <summary> /// Interaction logic for ToolWindow1Control. /// </summary> public partial class ToolWindow1Control : UserControl { /// <summary> /// Initializes a new instance of the <see cref="ToolWindow1Control"/> class. /// </summary> public ToolWindow1Control() { this.InitializeComponent(); } EnvDTE.DTE dte2; /// <summary> /// Handles click on the button by displaying a message box. /// </summary> /// <param name="sender">The event sender.</param> /// <param name="e">The event args.</param> [SuppressMessage("Microsoft.Globalization", "CA1300:SpecifyMessageBoxOptions", Justification = "Sample code")] [SuppressMessage("StyleCop.CSharp.NamingRules", "SA1300:ElementMustBeginWithUpperCaseLetter", Justification = "Default event handler naming pattern")] private void button1_Click(object sender, RoutedEventArgs e) { dte2 = Package.GetGlobalService(typeof(DTE)) as DTE; SolutionBuild2 sb = (SolutionBuild2)dte2.Solution.SolutionBuild; Projects projects2 = dte2.Solution.Projects; VCProject vcproject = null; if (projects2.Count > 0) { foreach (Project project in projects2)//just getting first project for simplicity { vcproject = project.Object as VCProject; break; } if (vcproject != null) { //changing both configurations. foreach (VCConfiguration configuration in vcproject.Configurations) { VCDebugSettings debugging = configuration.DebugSettings;//getting debug settings debugging.DebuggerFlavor = eDebuggerTypes.eRemoteDebugger; debugging.Remote = RemoteDebuggerType.DbgRemoteTCPIP; debugging.DebuggerType = TypeOfDebugger.DbgAuto; debugging.Attach = false; debugging.RemoteMachine = "10.10.10.10"; debugging.RemoteCommand = @"C:\Program Files\Test.exe"; debugging.SQLDebugging = false; debugging.WorkingDirectory = @"C:\Program Files\"; //Bug here! Does not work. } } } } } }
Что я уже пробовал:
Попробовал поискать в интернете, но никто об этом не сообщил.
Richard MacCutchan
Вы должны сообщить об этом в корпорацию Майкрософт.
nitrous_007
Будет отчитываться перед Microsoft