01.Coreプロジェクトの作成

Microsoft AccessVBAC#アプリケーションのNuGetで利用できるようにするため、ロジックとアダプターにプロジェクトを分離します。

ロジック部分をCoreプロジェクトとして作成します。

windows:vs:newproject.png

Visual Studio

新しいプロジェクトの作成(N)』でプロジェクトの作成を開始します。

windows:vs:cs:dll:core0101.png

テンプレートの選択

C#Windowsライブラリでフィルターして『クラスライブラリ』を選択します。

次へ(N)』で次に進みます。

windows:vs:cs:dll:core0102.png

プロジェクトの構成
ソリューションは複数のプロジェクトで構成しますので、『ソリューションとプロジェクトを同じディレクトリに配置する(D)』のチェックボックスは必ず外します

プロジェクト名(J)Coreと『ソリューション名(M)』を入力し、ソリューションの場所を指定します。

次へ(N)』で次に進みます。

windows:vs:cs:dll:core0103.png

フレームワークの選択

Coreプロジェクトでは、最新のフレームワークを選択して構いません。
プロジェクト作成後に.NET Frameworkでも参照できるように設定します。

作成(C)』でプロジェクトが作成されます。

ソリューション共有定義の作成

全プロジェクトで共有する定義を作成します。

windows:vs:cs:dll:core0201.png

ソリューションエクスプローラー

ソリューション』➡『追加(D)』➡『新しい項目(W)…』で『Directory.Build.props』ファイルを追加します。

<Project>
  <PropertyGroup>
    <Version>XX.XX.XX.XX</Version>
  </PropertyGroup>
  <PropertyGroup>
    <RootPackageId>ProgressLLC.XXXXXXXXXX</RootPackageId>
    <Company>プログレス合同会社</Company>
    <AssemblyTitle>$(Company)XXXXXXXXXXXXXXX</AssemblyTitle>
    <Title>ProgressLLC XXXXXXXXXXXXXXXX</Title>
    <Description>$(Title)</Description>
    <Product>$(RootPackageId)</Product>
    <Authors>Progress LLC (progress-llc.co.jp)</Authors>
    <Copyright>Copyright $(Authors)</Copyright>
    <IncludeSourceRevisionInInformationalVersion>false</IncludeSourceRevisionInInformationalVersion>
  </PropertyGroup>
  <PropertyGroup>
    <ComAssemblyName>$(RootPackageId.Replace(".",""))</ComAssemblyName>
    <NuGetAssemblyName>$(RootPackageId)</NuGetAssemblyName>
  </PropertyGroup>
  <PropertyGroup>
    <LangVersion>10.0</LangVersion>
    <Nullable>enable</Nullable>
    <ImplicitUsings>enable</ImplicitUsings>
  </PropertyGroup>
</Project>

2行目~4行目
ソリューション全体で同じバージョンになるように設定します。
5行目~15行目
.dll.nupkgのファイル情報を設定します。
14行目
バージョンにGitハッシュが自動付与されないようにしています。
16行目~19行目
internalCoreプロジェクトを参照する他プロジェクトのAssemblyName名を定義しています。
20行目~24行目
共通となる言語仕様を定義しています。