如何从Visual Studio扩展访问项目XML

时间:2015-04-21 01:27:24

标签: c# visual-studio visual-studio-2013 msbuild visual-studio-extensions

我正在开发一个Visual Studio扩展,需要直接修改项目的msbuild文件(例如* .csproj)。不幸的是,Visual Studio SDK似乎没有公开暴露任何支持此内容的对象。

如果所有其他方法都失败了,我总是可以在保存事件后根据文件创建一个Microsoft.Build.Evaluation.Project对象,在那里进行编辑,然后重新保存。但是,这会强制用户重新加载他们的项目,我宁愿避免。

this thread中描述了更好的部分解决方案。 Visual Studio将其部分评估对象保留在ProjectCollection.GlobalProjectCollection中,并平滑地检测我通过扩展程序所做的任何更改。不幸的是,这似乎并不适用于所有项目类型;它对C#很有用,但是当我加载一个C ++项目时,全局集合是空的。

是否有人知道访问评估项目对象的良好,受支持的方式?如果不这样做,是否有一个解决方案不涉及强制重新加载项目?

扩展程序需要与Visual Studio 2013+兼容,但不需要支持旧版本。

0 个答案:

没有答案