#はじめに
Visual Studio の Express が 2017 で終わりってことで Visual Studio Code へ移行
C++はQtと組み合わせて なんとなく移行できたことにした
しかし 配布されたSDKが.NETで組まれていたため Qt で組むより .NET でそのまま組んだ方が楽じゃないかなと思い立つ
その思いが甘かった
C++/CLI の特殊な書き方が全く頭に入らずラムダ式より拒否感が強い
この際だから C# を覚えてみようと路線変更するも 外部DLLの追加方法が分からない!
検索すると Visual Studio のIDEを使った追加方法はあるが 直接 .csproj に追加する方法が見つからない!
余りにも簡単すぎて 記事にする必要もないのかもしれないが Qiita にはいつもお世話になりまくっているので 覚書として
#1.プロジェクトを作成
次のコマンドでWindows Form用アプリのプロジェクト(Sample.scproj)を作成
> mkdir Sample
> cd Sample
> dotnet new winforms
#2. Sample.csprojを編集
配布されたSDKがMSILではなかったので プラットフォームを指定する必要あるらしい
<Project Sdk="Microsoft.NET.Sdk" ToolsVersion="15.0">
<PropertyGroup>
<OutputType>WinExe</OutputType>
<TargetFramework>net5.0-windows</TargetFramework>
<UseWindowsForms>true</UseWindowsForms>
<Platform>x64</Platform> <!-- SDKに合わせ Platformを追加 -->
</PropertyGroup>
<!-- このItemGroupも追加 -->
<ItemGroup>
<Reference Include="Foo.Bar.Baz">
<SpecificVersion>False</SpecificVersion>
<HintPath>lib\x64\Foo.Bar.Baz.dll</HintPath>
</Reference>
</ItemGroup>
</Project>
これで Foo.Bar.Baz のクラスが使用できるようになる
HintPath はプロジェクト下にDLLがあれば記述は不要かも
#3. パッケージの参照
IDEを使っている分には余り意識しなくてもよさげだが dotnet new で生成したプロジェクトだとパッケージ参照エラーになる
SqlClientパッケージを追加した場合は次のコマンドを実行
> dotnet add package System.Data.SqlClient
次の様にプロジェクトファイルにパッケージの参照情報が追記される
<Project Sdk="Microsoft.NET.Sdk" ToolsVersion="15.0">
<PropertyGroup>
<OutputType>WinExe</OutputType>
<TargetFramework>net5.0-windows</TargetFramework>
<UseWindowsForms>true</UseWindowsForms>
<Platform>x64</Platform>
</PropertyGroup>
<ItemGroup>
<Reference Include="Foo.Bar.Baz">
<SpecificVersion>False</SpecificVersion>
<HintPath>lib\x64\Foo.Bar.Baz.dll</HintPath>
</Reference>
</ItemGroup>
<ItemGroup>
<PackageReference Include="System.Data.SqlClient" Version="4.8.2" />
</ItemGroup>
</Project>
#おわりに
前述した通り ご存知の方には それが何?でしょうが 誰かのためになれば幸いです