13

関連するデフォルトの StyleCop ルールは次のとおりです。

  1. using内にステートメントを配置しnamespaceます。
  2. usingステートメントをアルファベット順に並べ替えます。
  3. しかし...最初に来てください(それが単にまたはSystem usingを意味するかどうかをまだ理解しようとしています)。using System;using System[.*];

だから、私のユースケース:

  • 私はバグを見つけ、次の担当者がデバッグに苦労しないように、少なくともわかりやすい Assert を追加する必要があると判断しました。入力を開始するDebug.Assert(と、Intellisense によって赤でマークされます。マウスを上下に移動しDebugusing System.Diagnostics;System.Diagnostics.Debug前者を選択します。using System.Diagnostics; これは、他のすべてのusingステートメントの後に挿入されます。VS2010 が、エラーとしての警告のためにビルドされないコードを書くのを助けてくれなかったらいいのにと思います。

VS2010 をよりスマートにするにはどうすればよいですか? なんらかの設定がありますか、それとも本格的なアドインが必要ですか?

4

3 に答える 3

6

#1 に関しては、こちらまたはこちらの手順を使用して、プロジェクト テンプレート アイテムを編集できます。私は VS 2K8 で StyleCop と FxCop をデフォルトで満足させるためにこれを行いましたが、手順が少し面倒で、VS サービス パックがそれらを上書きする可能性が常にあるため、2010 では実行していません。 .

たとえば、ConsoleApplication テンプレートの program.cs を次のように編集しました。

// <copyright file="Program.cs" company="$registeredorganization$">
// Copyright (c) $year$ All Rights Reserved
// </copyright>
// <author></author>
// <email></email>
// <date>$time$</date>
// <summary></summary>

namespace $safeprojectname$
{
    using System;
    using System.Collections.Generic;
    $if$ ($targetframeworkversion$ == 3.5)using System.Linq;
    $endif$using System.Text;

    /// <summary>
    /// Contains the program's entry point.
    /// </summary>
    internal static class Program
    {
        /// <summary>
        /// The program's entry point.
        /// </summary>
        /// <param name="args">The command-line arguments.</param>
        private static void Main(string[] args)
        {
        }
    }
}

assemblyinfo.cs は次のようになります。

// <copyright file="AssemblyInfo.cs" company="$registeredorganization$">
// Copyright (c) $year$ All Rights Reserved
// </copyright>
// <author></author>
// <email></email>
// <date>$time$</date>
// <summary></summary>

using System;
using System.Reflection;
using System.Runtime.InteropServices;

// General Information about an assembly is controlled through the following 
// set of attributes. Change these attribute values to modify the information
// associated with an assembly.
[assembly: AssemblyTitle("$projectname$")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("$registeredorganization$")]
[assembly: AssemblyProduct("$projectname$")]
[assembly: AssemblyCopyright("Copyright © $registeredorganization$ $year$")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]

// Setting ComVisible to false makes the types in this assembly not visible 
// to COM components.  If you need to access a type in this assembly from 
// COM, set the ComVisible attribute to true on that type.
[assembly: ComVisible(false)]

[assembly: CLSCompliant(true)]

// The following GUID is for the ID of the typelib if this project is exposed to COM
[assembly: Guid("$guid1$")]

// Version information for an assembly consists of the following four values:
//
//      Major Version
//      Minor Version 
//      Build Number
//      Revision
//
// You can specify all the values or you can default the Build and Revision Numbers 
// by using the '*' as shown below:
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("1.0.0.0")]
[assembly: AssemblyFileVersion("1.0.0.0")]

Microsoft Connect で、Microsoft Connect のツールの自動生成コードが StyleCop/FxCop およびコーディング ガイドライン ドキュメントを満たす必要があるという趣旨のインシデントを提出しました。

于 2010-05-20T16:24:54.670 に答える
4

2008 では、Power Commandsアドインを使用しています。未使用の using ステートメントを並べ替えて削除するコマンドが含まれています。それを Ctrl-O、Ctrl-R にマッピングします。自動ではありませんが、非常に高速です。

2010 には Power Commands もありますが、ステートメントを使用した並べ替えと順序付けが組み込まれていると思います。ショートカットを設定するだけで済みます。

PS。リソースのオーバーヘッドがあるため、Resharper は使用しません。ハードドライブを大量に消費し、メモリ使用量を大幅に増加させると人々に話すたびに、彼らは「最新バージョンを試してみてください。今はずっと良くなっています」と言います。言っておきますが、そんなことは一度もありません... 私は CodeRush Xpress を使用しています。

于 2010-05-20T15:37:37.573 に答える
3

本格的なアドインである Resharper (www.jetbrains.com) を使用して、VS2010 をよりスマートにすることができます。それはあなたのためにこれらすべてのことを(そして非常に多くのことを)行うことができ、価格に見合うだけの価値があります. Resharper アドイン「StyleCop for Resharper」は、オンザフライで StyleCop 違反をチェックし、Visual Studio がエラーに対して行うのと同じ方法でコードに下線を引くことさえできます。

于 2010-05-20T15:37:31.003 に答える