我希望能够在将我的 .csproj
文件添加到解决方案时或在我们的 CI 构建服务器上构建它们时对其进行验证。
验证意味着检查,例如:
- 路径和项目文件名符合约定
- 程序集名称和命名空间符合命名约定
- 平台目标是正确的
- 输出路径正确(发布和调试)
- 警告级别正确并且警告被视为错误
- 项目中存在某些文件(
AssemblyInfo.cs
等)。 - 程序集已被正确引用
- 等等
另一个有用的功能是能够忽略某些项目,或者更好的是,能够定义项目分组,每个组都有自己的验证规则。
在我看来,这似乎是许多其他人都必须遇到的问题,但是我还没有找到任何可以帮助简化或自动化此过程的工具。我想它可能是 StyleCop 或 FxCop 之类的东西。
是否存在这样的工具,或者我必须创建自己的自定义构建步骤?
(我也在使用 ReSharper,所以会考虑插件,尽管这可能会使构建服务器上的验证变得更加困难。)
最佳答案
据我所知,没有 tool to achieve this .这就是为什么我的一个同事编写了一个自定义工具来使用自定义规则验证器验证 .csproj
和 .vbproj
文件的原因。
有一些类可以检查项目文件,例如 Microsoft.Build.Evaluation.Project
(Assembly Microsoft.Build
) 可能对您很方便。但是当您尝试解析解决方案文件时,它会变得很脏。我强烈建议您看看这个 question on StackOverflow .
我所说的内部验证工具只是检查定义的规则(如 ToolsVersion
、TargetFrameworkVersion
、TargetCPU
、... ) 并以某种格式绘制相应的输出,以便构建服务器可以解析消息并在违反重要规则时停止构建。
祝你好运!
关于c# - 验证解决方案中的 .csproj 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31532690/