我希望能够以编程方式阅读VS构建配置。那是因为我要创建自己的生成器。

我怎么做?有人有代码示例吗?

我的意思是,如果我有Debug,Develop,Release,则希望它们在Form应用程序的列表框中列出。我曾尝试使用“ EnvDTE.dll”类,但不确定它是否是我想要的。如果有人有具体的示例或链接到示例,我将不胜感激。

最佳答案

您可以使用msbuild API。在Visual Studio 2015中,VS2015附带的Microsoft.Build.dll中有一个名为Microsoft.Build.Construction.SolutionFile的类,可用于加载解决方案。

在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包含解决方案中包含的平台和配置的列表。您可以使用它来填充表单。

关于c# - 以编程方式读取构建配置,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29904492/

10-15 03:10