vscode
複数のプロジェクトを設定する
サーチ…
備考
ローカルプロジェクトの参照
.sln
と.proj
ファイルはありません。
それらのフォルダの代わりに、Visual Studioコードでフォルダが使用されています 。
各プロジェクトフォルダには、個別のproject.json
ファイルが必要です。
/MyProject.Core
SourceFile.cs
project.json
/MyProject.Web
/Controllers
/Views
project.json
参照するにはMyProject.Core
からMyProject.Web
プロジェクト編集MyProject.Web\project.json
ファイルと依存関係を追加します。
// MyProject.Web/project.json
{
"dependencies": {
"MyProject.Core": {"target": "project"},
...
}
"buildOptions": {
"emitEntryPoint": true
}
}
"emitEntryPoint": true
という行"emitEntryPoint": true
は、 MyProject.Web
がソリューションの開始プロジェクトであることを示します。 MyProject.Core
はproject.json
ファイルでこのフラグを無効にする必要があります:
// MyProject.Core/project.json
{
...
"buildOptions": {
"emitEntryPoint": false
}
}
プロジェクトをビルドする(Mac: ⌘ + Shift + B 、Windows: Ctrl + Shift + B )、各プロジェクトには新しい.dll
ファイルを持つ\bin
および\obj
フォルダが必要です。
ソリューションの構造
テストプロジェクトを/test
フォルダの下に置き、ソースプロジェクトを/src
フォルダの下に置くなど、プロジェクトをグループ化することは非常に一般的です。 global.json
ファイルを追加して同様の構造にします:
global.json
/src/
/MyProject.Core/
SourceFile.cs
project.json
/MyProject.Web/
/Controllers
/Views
project.json
/test/
/MyProject.Core.UnitTests/
SourceFileTest.cs
project.json
/MyProject.Web.UnitTests/
/Controllers
/Views
project.json
空のglobal.json
ファイルを編集し、プロジェクトグループを指定する:
{
"projects":["src", "test"]
}
VSコードはtasks.json
を使用してタスクを実行し(例:ソリューションを構築する)、 launch.json
を使用してプロジェクトを開始します(デバッグなど)。これらのファイルが見つからない場合は、 F5 .vscode
押してデバッグを開始してエラーを無視してください.vscode
コードはルートフォルダの.vscode
フォルダの下にファイルとともに生成されます。
launch.json
ファイルを編集して起動ライブラリのパスを指定し、 MyProject.Web
をプロジェクト名で変更します。
{
"configurations": [
{
...
"program": "${workspaceRoot}/src/MyProject.Web/bin/Debug/netcoreapp1.0/MyProject.Web.dll",
"args": [],
"cwd": "${workspaceRoot}/src/Washita.Web",
...
}
}
tasks.json
ファイルを編集して起動ライブラリのパスを指定し、 MyProject.Web
をプロジェクト名で変更します:
{
"tasks": [
{
"taskName": "build",
"args": [
"${workspaceRoot}/src/MyProject.Web"
],
"isBuildCommand": true,
"problemMatcher": "$msCompile"
}
]
}
これで.NETソースファイルをビルドしてデバッグできるようになりました。
しかし、Intellisenseは複数のプロジェクト構成のために消えてしまいます。これを修正するには、 .cs
ファイルを開き、右下隅のSelect project
選択をSelect project
して適切なプロジェクト(project.json)に切り替えます。