Visual studio 如何从VCConfiguration获取自定义生成工具属性 目前在处理使用自定义生成工具生成的文件时,对VisualStudioC++进行扩展。在我的一生中,我找不到一种方法来深入到当前选定的项目的属性面板中
情景:Visual studio 如何从VCConfiguration获取自定义生成工具属性 目前在处理使用自定义生成工具生成的文件时,对VisualStudioC++进行扩展。在我的一生中,我找不到一种方法来深入到当前选定的项目的属性面板中,visual-studio,visual-c++,visual-studio-extensions,vsix,Visual Studio,Visual C++,Visual Studio Extensions,Vsix,情景: 我在解决方案中有一个test.myfile文件 它设置为使用自定义生成工具生成 你可以想象它是这样的 我目前在项目菜单中有一个命令按钮,按预期执行。我可以获得选定的项目,并从中获取选定的项目项目。我将项目的VCProjectItem和VCConfiguration绑定到活动配置的文件 如何从属性页获取“命令行”属性 如何从属性页获取“命令行”属性 在我做了深入的研究之后,我发现我们无法使用属性来获取自定义文件的属性命令。它可用于获取项目的属性(右键单击项目),而不是特定文件的属性(右
- 我在解决方案中有一个
文件test.myfile
- 它设置为使用自定义生成工具生成
using EnvDTE;
using System.Xml;
.........
VCProject prj;
XmlDocument doc = new XmlDocument();
DTE dTE = Package.GetGlobalService(typeof(DTE)) as DTE;
prj = dTE.Solution.Projects.Item(1).Object;
doc.Load(prj.ProjectFile); //read the proj file for the current project
XmlElement root = doc.DocumentElement;
XmlNodeList nodeList = root.GetElementsByTagName("CustomBuild"); //get the customBuild Node
string str="";
foreach (XmlNode node in nodeList) //search the child node 'command' in the parent node named custombuild
{
str += node["Command"].InnerText.ToString()+"-----";
}
因此,请不要忘记引用存在于C:\ProgramFiles(x86)\Microsoft Visual Studio\2017\Community\Common7\IDE\PublicAssemblys
中的envdte.dll
希望它能对您有所帮助。看起来这就是答案,我很惊讶我没有偶然发现它。尽管如此,如何访问项目中某个项的VCCustomBuildTool结构尚不清楚。您是否知道如何从VCProjectItem或DTE获得一个?谢谢当然不像我希望的那样方便。我能够用一种与您列出的方法非常相似的方法得到我所需要的,所以我将其标记为已接受的答案。谢谢