visual-studio - 是否可以在 Visual Studio 之外以编程方式读取 C/C++ 项目的 MSBuild 宏?
问题描述
我正在尝试对 Visual Studio 2017 项目 ( .vcxproj
) 进行大规模编辑。此编辑有条件地取决于某些项目属性。可悲的是,它比我使用共享.props
文件所能做的更复杂。
我可以重新实现获得所需宏所需的函数,例如$(TargetExt)
. 但我想知道是否有一些微软构建工具可以将所需的宏打印到标准输出,以便我可以这样做:
getMacroValue.exe -project MyProject.vcxproj -value TargetExt
有没有类似的东西,或者一些会导致相同结果的黑客/技巧?如果可行,我不介意肮脏的解决方案,我正在做的是一次性的事情,但是有 50 多个项目要编辑,每次编辑需要 5 分钟,因此编写脚本是值得的。
解决方案
也许这个示例(C# 控制台应用程序)可以帮助您从 proj 文件中读取属性值。
static void Main(string[] args)
{
if (args.Length < 2)
{
return;
}
string path = args[0];
string macro = args[1];
ProjectCollection collection = new ProjectCollection();
Project project = new Project(path, null, null, collection, ProjectLoadSettings.IgnoreMissingImports);
string val = project.GetPropertyValue(macro);
Console.WriteLine(val);
Console.ReadLine();
}
推荐阅读
- python - Python Selenium 循环通过 MySQL 中的组
- android-studio - Android Studio 已更新,现在无法启动,抛出内部错误
- python-3.x - Flask Upload 完全没有 Content-Type 或表单数据
- java - 如何初始化一个泛型变量
- javascript - Vue.js。打开固定侧边栏时如何移动主要内容?
- visual-studio-code - 如何开发支持汇编级调试的 vscode 扩展?
- c# - 如何使用来自 HTTPClient 的 CookieContainer 的 cookie 在 Selenium 驱动程序上设置 cookie?
- arrays - 如何修改 Janusgraph(Gremlin) 服务器 API 响应、字符串数组
- python - 如何将使用 np.linspace 创建的行向量更改为列向量?
- django - 在创建对象之前进行验证并通过一个序列化程序创建多个模型数据