【问题标题】:editing a solution with c#, visual studio and msbuild使用 c#、visual studio 和 msbuild 编辑解决方案
【发布时间】:2016-04-19 15:04:40
【问题描述】:

我有一个 VS 解决方案,如下所示:

Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 2013
VisualStudioVersion = 12.0.40629.0
MinimumVisualStudioVersion = 10.0.40219.1
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Demonstation", "Demonstation\Demonstation.csproj", "{8ABE7A72-527A-4E18-8442-9632F1AA83D5}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Folder 1", "Folder 1", "{416E314D-54A7-4A98-955D-86513A1EDBBF}"
    ProjectSection(SolutionItems) = preProject
        XMLFile1.xml = XMLFile1.xml
    EndProjectSection
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Folder 2", "Folder 2", "{B955928E-FADA-413D-839B-3A2D72A63A06}"
    ProjectSection(SolutionItems) = preProject
        TextFile1.txt = TextFile1.txt
    EndProjectSection
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Folder 3", "Folder 3", "{AA6C508F-817F-42F8-A3F8-2450BCC03FC5}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Important", "Important\Important.csproj", "{F7A45E90-5F30-4F5E-9EFA-F44AB260A731}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "even_more_important", "even_more_important\even_more_important.csproj", "{23C38EED-2893-406D-8184-7004C2F2D57F}"
EndProject
Global
    GlobalSection(SolutionConfigurationPlatforms) = preSolution
        Debug|Any CPU = Debug|Any CPU
        Release|Any CPU = Release|Any CPU
    EndGlobalSection
    GlobalSection(ProjectConfigurationPlatforms) = postSolution
        {8ABE7A72-527A-4E18-8442-9632F1AA83D5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
        {8ABE7A72-527A-4E18-8442-9632F1AA83D5}.Debug|Any CPU.Build.0 = Debug|Any CPU
        {8ABE7A72-527A-4E18-8442-9632F1AA83D5}.Release|Any CPU.ActiveCfg = Release|Any CPU
        {8ABE7A72-527A-4E18-8442-9632F1AA83D5}.Release|Any CPU.Build.0 = Release|Any CPU
        {F7A45E90-5F30-4F5E-9EFA-F44AB260A731}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
        {F7A45E90-5F30-4F5E-9EFA-F44AB260A731}.Debug|Any CPU.Build.0 = Debug|Any CPU
        {F7A45E90-5F30-4F5E-9EFA-F44AB260A731}.Release|Any CPU.ActiveCfg = Release|Any CPU
        {F7A45E90-5F30-4F5E-9EFA-F44AB260A731}.Release|Any CPU.Build.0 = Release|Any CPU
        {23C38EED-2893-406D-8184-7004C2F2D57F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
        {23C38EED-2893-406D-8184-7004C2F2D57F}.Debug|Any CPU.Build.0 = Debug|Any CPU
        {23C38EED-2893-406D-8184-7004C2F2D57F}.Release|Any CPU.ActiveCfg = Release|Any CPU
        {23C38EED-2893-406D-8184-7004C2F2D57F}.Release|Any CPU.Build.0 = Release|Any CPU
    EndGlobalSection
    GlobalSection(SolutionProperties) = preSolution
        HideSolutionNode = FALSE
    EndGlobalSection
    GlobalSection(NestedProjects) = preSolution
        {8ABE7A72-527A-4E18-8442-9632F1AA83D5} = {416E314D-54A7-4A98-955D-86513A1EDBBF}
        {F7A45E90-5F30-4F5E-9EFA-F44AB260A731} = {B955928E-FADA-413D-839B-3A2D72A63A06}
        {23C38EED-2893-406D-8184-7004C2F2D57F} = {AA6C508F-817F-42F8-A3F8-2450BCC03FC5}
    EndGlobalSection
EndGlobal

如您所见,共有 3 个文件夹。

我的任务是使用 c#、Visual Studio 和 msbuild 从解决方案中删除文件夹 1,其中包含所有内容(文件 + 子目录)。我已经在互联网上搜索过类似的问题。不幸的是,除了这两个之外,我还没有找到任何可以帮助我解决具体问题的帖子:

How do i build a solution programmatically in C#?

api to check for project variables and reference paths in a project file

我需要一些编码示例来熟悉 msbuild 以及如何解决此任务的有用提示。

提前感谢您的回答!

致以最诚挚的问候 新的 Ubuntu 用户

【问题讨论】:

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


【解决方案1】:

没有记录在案的 API 用于处理解决方案文件(顺便说一句,它们 不是 msbuild 文件,所以你一直在寻找错误的地方)...

除非您必须对数十个文件执行此操作,否则在 IDE 中打开解决方案并从那里删除所有内容会更快。方式。替代解决方案:

  • 在文本编辑器中打开文件并删除一些行
  • 找出 VS 使用哪些程序集来读取/写入解决方案文件并根据需要使用它们
  • 为解决方案文件编写您自己的基于文本的解析器(使用 C# 或任何最适合您的语言)

【讨论】:

  • 您好 stijn,感谢您的回复。实际上,我需要处理两个解决方案文件,而我的主管希望我在 C# 中编写一些代码。
  • 好吧,这无论如何都不会改变我的答案。所以除非这是某种编程练习来确定你是否有能力,否则我会告诉主管可能有更好的事情可以花时间。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-03-03
  • 2015-11-15
  • 2017-05-23
  • 2015-11-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多