【发布时间】:2010-10-06 22:10:12
【问题描述】:
在 .NET 中,每个解决方案/项目都有 SUO、SLN、Proj 文件。虽然我知道这些文件是什么,但手动编辑它们是否明智?他们甚至需要编辑吗?如果是这样,最好的方法是什么?
谢谢
【问题讨论】:
-
rm -rf *.sln;编辑生成文件; :)
标签: .net visual-studio
在 .NET 中,每个解决方案/项目都有 SUO、SLN、Proj 文件。虽然我知道这些文件是什么,但手动编辑它们是否明智?他们甚至需要编辑吗?如果是这样,最好的方法是什么?
谢谢
【问题讨论】:
标签: .net visual-studio
您可以编辑许多可用的文件。文档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 文件是您的用户选项,不应直接编辑。我亲自使用了二进制编辑器并对其进行了编辑,只是为了看看它是否可以成功完成,但这样做需要您自担风险。
【讨论】:
项目文件可以很容易地手动编辑 - 您有时必须这样做才能将项目添加到 MSBuild 支持但 Visual Studio 不支持编辑的项目(例如conditional elements)。我有一个 Visual Studio 加载项(我认为它可能是 PowerCommands),它在解决方案资源管理器的上下文菜单中添加了一个“编辑项目文件”选项。单击它会从 Visual Studio 中卸载项目并以 XML 格式打开 prof 文件,以便在 Visual Studio 的 XML 编辑器中进行编辑。
SLN 文件不是 XML,但它们实际上并不包含任何值得手动编辑的内容。
我认为 SUO 文件是二进制文件,不应编辑(它们仅包含解决方案的用户特定值)。
【讨论】:
我从未编辑过 SUO 文件 - 甚至不确定它的作用。
.sln 和 .proj 文件,当然是可以手动编辑的,但是对于复杂的东西,我觉得还是让 VS 自己动手,然后根据需要对文件进行手术编辑。
对我的工作地点产生很大影响的一件事是采用PropertySheets 来定义跨不同项目的一组通用设置。
【讨论】:
在编辑项目文件时,您可以在 Visual Studio 中右键单击该项目,然后选择“卸载项目”。然后,您可以右键单击同一个项目(现在显示为灰色)并选择编辑。一次,完成,再次右键单击并选择重新加载。
【讨论】:
当然,我偶尔需要编辑它们。最近,我有一个项目文件,它启用了将程序集注册为 COM 对象的标志。在我删除了所有 COM 可见的类之后,这会产生一个警告,所以我从项目文件中删除了该行。我用记事本。
【讨论】:
很少需要编辑它们。一种情况是修改 ProjectTypeGuids,以便在 Expression Blend 中正确识别它。其他几次不得不对不再存在的引用进行一些手动更改。
总而言之,它很少而且相差甚远。 .prj 文件是 XML,因此任何好的 XML 编辑器都足够了。 VS 中的属性页面显然也引用了 .prj 文件,以进行不希望手动进行的更改。
【讨论】:
我们的许多 csproj 文件都经过编辑以使用高级 msbuild 功能。一件常见的事情是更改自定义任务的 beforebuild 和 afterbuild 目标。
您可以通过右键单击项目并从上下文菜单中选择卸载项目来从 Visual Studio 执行此操作。之后,您可以再次使用右键单击编辑和重新加载项目。
【讨论】: