我希望能够以编程方式阅读VS构建配置。那是因为我想创建自己的构建器。
我该怎么做?有没有人有代码示例?
我的意思是,如果我有Debug,Development,Release,我希望它们列在Form应用程序的列表框中。我尝试过使用" EnvDTE.dll"上课,但我不确定这是我在找什么。如果有人有一个具体的例子或链接到一个例子,我将非常感激。
答案 0 :(得分:3)
您可以使用msbuild API。在Visual Studio 2015中,Microsoft.Build.dll中有一个名为Microsoft.Build.Construction.SolutionFile的类,它随VS2015一起提供,可用于加载解决方案。
在VS2013中没有这样的东西,但你可以做到以下几点: (参考Microsoft.Build.dll,Microsoft.Build.Engine.dll,Microsoft.Build.Framework.dll)
class Program
{
static void Main(string[] args)
{
string nameOfSolutionForThisProject = @"MySolutionFile.sln";
string wrapperContent = SolutionWrapperProject.Generate(nameOfSolutionForThisProject, toolsVersionOverride: null, projectBuildEventContext: null);
byte[] rawWrapperContent = Encoding.Unicode.GetBytes(wrapperContent.ToCharArray());
using (MemoryStream memStream = new MemoryStream(rawWrapperContent))
using (XmlTextReader xmlReader = new XmlTextReader(memStream))
{
Project proj = ProjectCollection.GlobalProjectCollection.LoadProject(xmlReader);
foreach (var p in proj.ConditionedProperties)
{
Console.WriteLine(p.Key);
Console.WriteLine(string.Join(", ", p.Value));
}
}
Console.ReadLine();
}
}
ConditionedProperties包含解决方案中包含的平台和配置列表。您可以使用它来填充表单。