是否有用于以编程方式更改项目和解决方案文件的API(.vbproj,.csproj,.sln)?

时间:2009-06-15 14:03:06

标签: .net visual-studio projects-and-solutions

我们手工维护大量的.NET项目和解决方案文件;这是丑陋乏味的,应该是自动化的。这些文件都是XML,因此为我们的目的编写工具并不难,但我想知道是否有人知道VS或TFS API对象可以让我使用这些文件作为对象而无需创建我自己的类。

出于我们的目的,我们需要确保所有项目符合许多标准:   - 基址   - 自定义构建类型     - 每种构建类型的特定属性   - 自定义“After Build”操作

我已经找到了用于在Visual Studio中加载项目时使用的API,并且正在考虑为我们的需求编写加载项的选项 - 但理想情况下我希望能够反序列化直接来自文件的对象;检查它是否符合要求;根据需要进行更改并将对象序列化回文件。

fyi:如果你正在寻找同样的事情,请告诉我;我有兴趣在下班后写这篇文章并在CodePlex上分享。为了我的目的,TFS会有一些钩子,但我也想为其他人创造一些有用的东西。

2 个答案:

答案 0 :(得分:4)

local schema cache获取msbuild.xsd并在其上使用xsd.exe

如果要添加对自定义构建任务的支持,请先使用MSBuildSchemaGen为任务程序集创建自定义XSD。

如果xsd.exe的输出不能让您感觉良好,请使用XsdTidy进行改进。

答案 1 :(得分:0)

由于是XML,你可以通过调用XML .NET Classes等开发一个工具来完成你需要的工作。