概要
WindowsでVisual Studioを利用した開発を行う際の最初の設定。
これらのファイルはGitリポジトリ準備時、およびソリューション追加時に配置する。
まずは作業1と作業2をGitリポジトリ準備時に実施し、ソリューション追加時に作業3をソリューションごとに行う。
作業1. デフォルトの改行コードをCRLFにする
既定の文字コードがCRLF
であるWindows専用の環境で開発し利用するプログラム(基本的には.NET Framework)のリポジトリで検討が必要な設定となる。
手順
リポジトリ直下に次のファイルを配置する
# https://docs.github.com/ja/get-started/getting-started-with-git/configuring-git-to-handle-line-endings
# デフォルトの改行コードをCRLFにする。
* text=auto eol=crlf
# Linuxシェル
*.sh text eol=lf
# Windowsシェル
*.{cmd,[cC][mM][dD]} text eol=crlf
*.{bat,[bB][aA][tT]} text eol=crlf
Editor Configに対応したエディタ(Visual Studio 2017以降)で編集する想定であれば、.gitattributes
ではなくEditor Configでの指定が望ましい
https://learn.microsoft.com/ja-jp/visualstudio/ide/create-portable-custom-editor-options?view=vs-2022
Visual Studio のエディターは、EditorConfig プロパティの次のコア セットをサポートします。
indent_style
indent_size
tab_width
end_of_line
文字セット
trim_trailing_whitespace
insert_final_newline
root
目的
Gitの既定の改行コードはLF
となっている。
Windows環境で作成されるファイルの改行コードはCRLF
となっている。
基本的に問題は発生しないが、まれに発生することがあるためこのファイルの追加、もしくはEditor Configでの指定を行う(Editor Configに対応したエディタでの編集となる場合)。
後から調整は可能だが手間がかかるため、Gitリポジトリ準備時に行っておいた方が望ましい。
作業2. gitignoreのファイルを追加する
手順
次のURLからVisualStudio.gitignore
をダウンロードし、リポジトリ直下に.gitignore
として配置する
目的
.NET Framework、.NET関連で管理不要のファイルをGit管理から除外するため。
一度追加した後に除外は可能だが手間がかかるため、Gitリポジトリ準備時に行っておいた方が望ましい。
作業3. 同一ソースコードから生成されるビルド成果物のバイナリ同一性の可能な限りの担保
手順
ソリューションファイルと同じ場所に次のファイルを配置する。
<Project>
<PropertyGroup>
<Deterministic>true</Deterministic>
<RepoRoot>$([System.IO.Path]::GetFullPath('$(MSBuildThisFileDirectory)..\'))</RepoRoot>
<PathMap>$(RepoRoot)=.</PathMap>
</PropertyGroup>
</Project>
説明
可能な限り、同一ソースコードから生成されるビルド成果物のバイナリ同一性を担保するため。
CIでの成果物が異なる場合、納品物準備時などに問題なとなることがある。
ただし、次にあるようにこの設定を行っても様々な条件でビルド成果物にも相違が生じる可能性がある。
https://jpdscore.github.io/blog/vs/identity-of-build-artifacts-from-identical-source/