【发布时间】:2011-11-09 11:58:35
【问题描述】:
我想以编程方式在解决方案中添加和删除项目、解决方案文件夹和其他项目(例如资源文件),但我不确定最好的方法是什么。
对于那些不知道的人,高度简化;这就是 sulution 文件 (.sln) 通常的样子:
Microsoft Visual Studio Solution File, Format Version 11.00
# Visual Studio 2010
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "project name", "projectpath\name.csproj", "{785ECC80-AF1B-4FBC-B97B-2EC43B7E81E8}"
EndProject
Global
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{785ECC80-AF1B-4FBC-B97B-2EC43B7E81E8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
EndGlobalSection
EndGlobal
我不确定这是否是一个真正的开放标准,例如 xml(是吗?),但似乎 Visual Basic 团队制作了自己的 xml 版本。 (不是恭维)
那么无论如何,对对象进行序列化和反序列化的最佳方法是什么?我正在考虑制作自己的 IFormatter,但这似乎相当复杂。
【问题讨论】:
-
使用 Visual Studio 宏怎么样?宏允许您自动化 VS IDE 中几乎所有可用的命令。我不会编辑 sln/prj 文件,因为每个 VS 版本的格式都会略有变化。
-
现在我只需要能够编辑 vs2010 解决方案文件。而且我不认为 Visual Studio 宏会做,我将需要一个实际的类库。
-
如果您可以确定执行机器上的 VS IDE 可用,您可以在后台打开 VS IDE 并通过 DTE 界面自动执行任务。见mztools.com/articles/2005/mz2005005.aspx
-
任何带有完整源代码示例的最终解决方案?
-
@Kiquenet 很遗憾没有。我最终编写了自己的解析器
标签: c# visual-studio-2010 serialization projects-and-solutions deserialization