Расширение Visual studio не может получить имя outputfilename / targetfile из ENVDTE.DTE VSIX для проекта C++
Привет,
i am writing a Visual Studio Extension and I need to get the OutputFileName or TargetFileName for C++ projects in the solution. For example in a sample solution this OutputFileName or TargetFileName would be ConsoleApplication.dll(note that its case sensitive). I wrote some code as shown below to achieve this but my code is crashing in the lines below. The only line that works is when i try to get Output Path. OutputFileName crashes in both cases as shown in code below. I also tried to cast it to a VCProject using Microsoft.VisualStudio.VCProjectEngine using the external dll but I dont know how to get the OutputFileName or TargetFileName nor do I not know if its going to work.
Примеры в интернете показывают, что ниже должно работать. Однако это не работает. Как я уже сказал, OutputPath работает. Это потому, что это неуправляемый Проект C++, и я должен получить путь, используя какой-то другой способ? Я могу подтвердить, что проекты, с которыми я работаю, являются действительными неуправляемыми проектами C++.
EnvDTE.DTE dte2 = Package.GetGlobalService(typeof(DTE)) as DTE; Projects projects2 = dte2.Solution.Projects; string outputPath = projects2 [0].ConfigurationManager.ActiveConfiguration.Properties.Item("OutputPath").Value.ToString(); //This works string outputFileName = projects2 [0].ConfigurationManager.ActiveConfiguration.Properties.Item("OutputFileName").Value.ToString(); //This crashes string outputFileName = list[0].Properties.Item("OutputFileName").Value.ToString();//This crashes
Что я уже пробовал:
string outputFileName = projects2 [0].ConfigurationManager.ActiveConfiguration.Properties.Item("OutputFileName").Value.ToString(); //This crashes string outputFileName = list[0].Properties.Item("OutputFileName").Value.ToString();//This crashes VCProject vcproject = list[0].Object as VCProject;//How to use this?