编辑sln、proj、suo文件的最佳实践是什么?

19
在.NET中,每个解决方案/项目都有SUO、SLN和Proj文件。虽然我知道这些文件是什么,但手动编辑它们明智吗?它们是否需要被编辑?如果需要编辑,最佳方式是什么?
谢谢

4
删除所有的 .sln 文件;编辑 Makefile 文件;:) - cristobalito
7个回答

11

您可以编辑许多可用的文件。文档中甚至有执行此操作的说明:http://msdn.microsoft.com/zh-cn/library/ms171487(v=VS.90).aspx

.SLN文件不是XML格式,您可以在这里找到关于.SLN文件内容的信息: https://msdn.microsoft.com/zh-cn/library/bb165951(v=vs.140).aspx

项目文件是MSBuild脚本,因此经常需要编辑(使用工具或手动),以包含修改构建配置以满足您的需求的项。以下是链接到可能有所帮助的MSBuild参考: http://msdn.microsoft.com/zh-cn/library/0k6kkbsd.aspx

.SUO文件是您的用户选项,不应直接编辑。我个人曾使用二进制编辑器并对其进行编辑,只是为了查看是否可以成功完成,但风险自负。


2
项目文件可以轻松地手动编辑 - 有时需要这样做以添加 MSBuild 支持但 Visual Studio 不支持编辑的项目项(例如 条件元素)。我在 Visual Studio 中安装了一个插件(我认为它可能是 PowerCommands),它会在“解决方案资源管理器”上下文菜单中添加“编辑项目文件”的选项。点击该选项会将项目从 Visual Studio 卸载,并打开 prof 文件作为 XML 在 Visual Studio 的 XML 编辑器中进行编辑。
SLN 文件不是 XML,但它们实际上并不包含值得手动编辑的内容。
我认为 SUO 文件是二进制文件,不应该被编辑(它们只包含解决方案的特定于用户的值)。

嗯,SLN文件并不是XML格式。它们具有专有的文本格式。 - Peter Stephens
@Peter:你是对的。我没有检查,因为我知道它们中没有值得编辑的内容——也许我记错了它们有缩进结构,并将其与 XML 混淆在了一起。 - adrianbanks
SLN文件包含VS版本。当与没有相同版本的人一起工作时,我不得不降级解决方案。 - Wayne
“��有值得手动编辑的东西”; 如果它以某种方式损坏了怎么办?如果不是手动修复,还有什么其他方法可以修复它吗?是否有替代方案? - Nate Anderson

0

没错,我偶尔需要编辑它们。最近,我有一个项目文件,启用了将程序集注册为COM对象的标志。在我删除了所有COM可见类之后,这会生成一个警告,所以我从项目文件中删除了那一行。我使用了记事本。


0

很少需要编辑它们。一个情况是修改ProjectTypeGuids,以便在Expression Blend中正确识别。还有几次需要手动更改不再存在的引用。

总的来说,这种情况很少发生。.prj文件是XML格式的,因此任何好的XML编辑器都可以胜任。VS的属性页面显然也引用.prj文件,以进行不想手动更改的更改。


0

我从未编辑过 SUO 文件,甚至不确定它的作用。

关于 .sln 和 .proj 文件,它们肯定可以手动编辑,但对于任何复杂的内容,我发现最好让 VS 做艰苦的工作,然后根据需要进行手术式编辑文件。

在我的工作场所,有一件事情使很大的差异,那就是采用 PropertySheets 来定义跨不同项目的公共设置。


0

在编辑项目文件时,您可以在Visual Studio中右键单击项目,然后选择“卸载项目”。然后您可以右键单击同一项目(现在灰色显示),并选择“编辑”。编辑完成后,再次右键单击并选择“重新加载”。


-1

我们的许多csproj文件都被编辑以使用高级msbuild功能。一个常见的事情是更改beforebuild和afterbuild目标以进行自定义任务。
您可以通过在Visual Studio中右键单击项目并从上下文菜单中选择卸载项目来执行此操作。之后,您可以再次右键单击以编辑和重新加载项目。


@stephen 在IDE中,你可以运行一个命令脚本。在自定义MSBUILD中,你可以做更多的事情。当然,在命令脚本中,你也可以随时调用另一个MSBUILD进程。 - Preet Sangha

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接