【问题标题】:Best practices for editing sln, proj, suo files?编辑 sln、proj、suo 文件的最佳实践?
【发布时间】:2010-10-06 22:10:12
【问题描述】:

在 .NET 中,每个解决方案/项目都有 SUO、SLN、Proj 文件。虽然我知道这些文件是什么,但手动编辑它们是否明智?他们甚至需要编辑吗?如果是这样,最好的方法是什么?

谢谢

【问题讨论】:

  • rm -rf *.sln;编辑生成文件; :)

标签: .net visual-studio


【解决方案1】:

您可以编辑许多可用的文件。文档http://msdn.microsoft.com/en-us/library/ms171487(v=VS.90).aspx 中甚至有相关说明

解决方案文件不是 XML 格式,您可以在此处找到有关 .SLN 文件内容的信息: https://msdn.microsoft.com/en-us/library/bb165951(v=vs.140).aspx

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

.SUO 文件是您的用户选项,不应直接编辑。我亲自使用了二进制编辑器并对其进行了编辑,只是为了看看它是否可以成功完成,但这样做需要您自担风险。

【讨论】:

    【解决方案2】:

    项目文件可以很容易地手动编辑 - 您有时必须这样做才能将项目添加到 MSBuild 支持但 Visual Studio 不支持编辑的项目(例如conditional elements)。我有一个 Visual Studio 加载项(我认为它可能是 PowerCommands),它在解决方案资源管理器的上下文菜单中添加了一个“编辑项目文件”选项。单击它会从 Visual Studio 中卸载项目并以 XML 格式打开 prof 文件,以便在 Visual Studio 的 XML 编辑器中进行编辑。

    SLN 文件不是 XML,但它们实际上并不包含任何值得手动编辑的内容。

    我认为 SUO 文件是二进制文件,不应编辑(它们仅包含解决方案的用户特定值)。

    【讨论】:

    • 嗯,SLN 文件不是 XML。它们具有专有的文本格式。
    • @Peter:你是对的。我没有检查,因为我知道它们没有任何值得编辑的地方——也许我记得它们有一个缩进结构,并在我的脑海中将其与 XML 混淆了。
    • SLN 文件包含 VS 版本。与没有相同版本的人合作时,我不得不降级解决方案。
    • "没有什么值得手工编辑的";如果它以某种方式损坏怎么办? stackoverflow.com/a/24194308/1175496 如果不是手动修复它怎么办?有其他选择吗?
    【解决方案3】:

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

    .sln 和 .proj 文件,当然是可以手动编辑的,但是对于复杂的东西,我觉得还是让 VS 自己动手,然后根据需要对文件进行手术编辑。

    对我的工作地点产生很大影响的一件事是采用PropertySheets 来定义跨不同项目的一组通用设置。

    【讨论】:

      【解决方案4】:

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

      【讨论】:

        【解决方案5】:

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

        【讨论】:

          【解决方案6】:

          很少需要编辑它们。一种情况是修改 ProjectTypeGuids,以便在 Expression Blend 中正确识别它。其他几次不得不对不再存在的引用进行一些手动更改。

          总而言之,它很少而且相差甚远。 .prj 文件是 XML,因此任何好的 XML 编辑器都足够了。 VS 中的属性页面显然也引用了 .prj 文件,以进行不希望手动进行的更改。

          【讨论】:

            【解决方案7】:

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

            【讨论】:

            • @stephen 在 ide 中,您可以选择运行命令脚本。您可以在自定义 MSBUILD 中做更多的事情。当然,您可以在命令脚本中使用 alays shell 到另一个 MSBUILD 进程。
            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2011-04-21
            • 2016-02-02
            • 2018-06-25
            • 1970-01-01
            • 2015-07-23
            相关资源
            最近更新 更多