c# - 验证解决方案中的 .csproj 文件

标签 c# visual-studio validation continuous-integration csproj

我希望能够在将我的 .csproj 文件添加到解决方案时或在我们的 CI 构建服务器上构建它们时对其进行验证。

验证意味着检查,例如:

  • 路径和项目文件名符合约定
  • 程序集名称和命名空间符合命名约定
  • 平台目标是正确的
  • 输出路径正确(发布和调试)
  • 警告级别正确并且警告被视为错误
  • 项目中存在某些文件(AssemblyInfo.cs 等)。
  • 程序集已被正确引用
  • 等等

另一个有用的功能是能够忽略某些项目,或者更好的是,能够定义项目分组,每个组都有自己的验证规则。

在我看来,这似乎是许多其他人都必须遇到的问题,但是我还没有找到任何可以帮助简化或自动化此过程的工具。我想它可能是 StyleCop 或 FxCop 之类的东西。

是否存在这样的工具,或者我必须创建自己的自定义构建步骤?

(我也在使用 ReSharper,所以会考虑插件,尽管这可能会使构建服务器上的验证变得更加困难。)

最佳答案

据我所知,没有 tool to achieve this .这就是为什么我的一个同事编写了一个自定义工具来使用自定义规则验证器验证 .csproj.vbproj 文件的原因。

有一些类可以检查项目文件,例如 Microsoft.Build.Evaluation.Project (Assembly Microsoft.Build) 可能对您很方便。但是当您尝试解析解决方案文件时,它会变得很脏。我强烈建议您看看这个 question on StackOverflow .

我所说的内部验证工具只是检查定义的规则(如 ToolsVersionTargetFrameworkVersionTargetCPU、... ) 并以某种格式绘制相应的输出,以便构建服务器可以解析消息并在违反重要规则时停止构建。

祝你好运!

关于c# - 验证解决方案中的 .csproj 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31532690/

相关文章:

c# - C#无法查看有关API响应的错误,仅抛出异常以尝试/捕获

c# - 使扩展方法异步

c++ - CMake 和 VisualStudio : Group files in solution explorer

javascript - 当我似乎无法重现它时,如何调试此验证错误?

c# - DispatcherTimer 应用间隔并立即执行

c# - 为什么 Assert.AreEqual 在 <Object, Object> 上失败?类型不匹配?

java - 在哪里可以下载 Java.Net 安装程序

visual-studio - 如何计算 visual studio 解决方案中的所有方法

javascript - 表单数据验证无法正常工作

javascript - 如何在提交时验证此 HTML/JavaScript 表单?