目次

Visual Studio

Tips

エラー箇所へ飛ぶ Ctrl + Shift + F12
VisualStudio 便利なショートカット

スクロールバーにコードマップを表示する

  1. 「ツール>オプション」を選択する
  2. 「テキストエディター>すべての言語>スクロールバー」を選択する
  3. 「垂直スクロールバーでのマップモードの使用」をオンにする
  4. 「OK」を選択する

タブとスペースの表示

Visual Studio メニューの「編集>詳細>スペースの表示」を選択する。
【Visual Studio】空白(スペース)やタブを表示する方法

タブをスペースに変換する

管理者権限で常に開くようにする

Windows 7

  1. ショートカットの「互換性」タブをクリックします。
  2. 特権レベルの「管理者としてこのプログラムを実行する」にチェックを付ける。
  3. グレーアウトされている場合、Windows 10と同様にする。

バッチファイルを常に管理者権限で実行する方法

Windows 10

  1. ショートカットのプロパティのショートカットタブより『詳細設定』をクリックします。
  2. 詳細プロパティより『管理者として実行』にチェックを付け『OK』をクリックします。

[Win10] ソフトウェアを常に『管理者として実行』する方法

拡張機能

Indent Guides インデント位置に破線
【Visual Studio】インデント位置に破線を表示する拡張機能「Indent Guides」

C# outline 折りたたみ
【Visual Studio】if文やfor文でもアウトラインを有効にする拡張機能「C# outline 2015」

Trailing Whitespace Visualizer コード内の不要な空白を強調表示
【Visual Studio】コード内の不要な空白を強調表示する拡張機能「Trailing Whitespace Visualizer」

Web 開発のための Visual Studio 拡張機能をまとめたもの 2015版と2017版がある
Visual Studio 拡張機能、Web Extension Pack リスト
Web Extension Pack 2017 から Web Essentials 2017 へ

中括弧の位置や空行削除や不要なusingなど
Code整形でちょっと役立つCodeMaidの利用方法

TODOコメント

コーディングしている際に、後で処理を追加しておくメモ用にTO-DOを作成する。

書き方

ポイントは、「//」と「TODO」の間に半角スペースを入れることです。

// TODO: taskA

タスク一覧表示

Visual Studioの「表示」>「タスク一覧」から確認できます。

参照

【Visual Studio】TODOコメントの書き方と確認方法

画面解像度

フォームの文字サイズなどが大きく表示されてしまう場合、高DPIが原因

レイアウトが正常な状態

レイアウトが崩れた状態

Visual Studio 2015のショートカットの互換性タブに設定にある「高DPI設定では画面のスケーリングを無効にする」にチェックを付ける。

Visual Studioで外部ソースを含めたデバッグを実行したい

メニューの「ツール > オプション」を開いて、「デバッグ」項目の「マイコードのみを有効にする」のチェックを外します。

Visual Studioで外部ソースを含めたデバッグを実行する

Visual Studioの保存ボタンで「オブジェクト参照がオブジェクトインスタンスに設定されていません」のエラー

現象

Visual Studio 2022でプロジェクトを開いてソースコードを編集して保存しようとすると「オブジェクト参照がオブジェクトインスタンスに設定されていません」のエラーになり保存ができない。保存させるには編集したファイルのタブを閉じることで保存させている。

対応

Visual Studio error "Object reference not set to an instance of an object" after install of ASP.NET and Web Tools 2015 - stackoverflow

  1. Visual Studio 2022を閉じる
  2. C:\Users{ユーザー名}\AppData\Local\Microsoft\VisualStudio\ フォルダを開きます
  3. 17.0_9cac6ada フォルダの名前を変更する
  4. Visual Studio 2022を起動します。

ビルド後に不要なフォルダを削除

Microsoft.Data.SqlClient に切り替えてから、言語コードのフォルダー出力されるようになった。
これらのリソースファイルのほとんどが例外メッセージをローカライズするために使用されていることですが、使用中のプロジェクトとしては不要なため、削除したい。

https://github.com/dotnet/SqlClient/issues/1368

上記サイトのようにプロジェクトの.csprojファイルにAfterBuildの方法にしたかったが、Visual Studio 2022上から追加して実行しても何も削除されなかった(調査が必要)

AfterBuildの方法は中止、プロジェクトのプロパティにある「ビルド後のイベント」を使用することにした。
「ビルド後のイベント」のところに「call RemoveDir.bat $(OutDir)」をセット

対象ファイルが存在する言語フォルダのみを削除する「RemoveDir.bat」を、プロジェクトの.csprojファイルと同じフォルダに格納する。

RemoveDir.bat
@echo off
 
setlocal enabledelayedexpansion
set TRUE_FALSE=FALSE
 
for /d %%f in ("%1%\*") do (
    if exist "%%f\Microsoft.Data.SqlClient.resources.dll" set TRUE_FALSE=TRUE
    if exist "%%f\Microsoft.TestPlatform.CoreUtilities.resources.dll" set TRUE_FALSE=TRUE
    if !TRUE_FALSE!==TRUE (
        echo Deleting folder: %%f
        rmdir /s /q "%%f"
    )
)
 
endlocal

※発行(publish)した場合、結局言語フォルダが出来てしまう。

テストプロジェクトの場合「Microsoft.Data.SqlClient.dll」を指定しても、csとplとtrフォルダはファイル未存在で残ってしまったため、「Microsoft.TestPlatform.CoreUtilities.resources.dll」に切り替えた。