Reference StoreFrontのプログラムをビルドできるようにVisual Studio2015をセットアップをする

samatsu 8/24/2016 6105 N/A SCpbCS81Setup

何回かに分けて、Reference StoreFront をスタンドアローン環境にセットアップしたので、せっかくなので、Reference StoreFrontをビルドして、デバッグ実行して動作を確認できるようにVisual Studio 2015上でソリューションをセットアップしてみます。

Reference StoreFrontサンプルサイトを構築する手順に関しては次のリンクを参照してください。

  • part 1 - SCpbCS を実装するための必要なファイルの準備とWindowsの機能をインストールします
  • part 2 - Sitecore Commerce Serverのインストールと構成を行います
  • part 3 - Sitecore と Sitecore Commerce Server を連携させる前準備を行います
  • part 4 - Sitecore にアドオンモジュールをインストールします
  • part 5 - part 4 でインストールした各モジュールを連携させるための構成を行います
  • part 6 - 必要なアイテムの修正を実施し、動作確認を行います

使用するReference StoreFrontのバージョンに応じたソースコードを次のURLからダウンロードして下さい。

https://github.com/Sitecore/Reference-Storefront/releases

今回は、記事作成時点で最新のリリースのソリューション Reference-Storefront-8.1.478.2.zip を使用します。

ダウンロードしたzipファイルを展開して、適当な場所に配置してください。Storefrontフォルダがソリューションのルートフォルダです。

Storefrontフォルダ内の、Commerce.Server.Storefront.sln をダブルクリックしてVisual Studioで開きます。

Visual Studio 2015用にプロジェクトのアップグレードが行われます。下図のような画面が表示されますが、Tead Development for Sitecoreはないので、2つのプロジェクトはアップグレードできません。特に問題はないので無視します。

早速ソリューションをリビルドしてみます。すると、大量のエラーが発生します。

必要なdllをStorefront\Libフォルダにコピーしていきます。Reference Storefrontをセットアップした SitecoreのWebsite\binフォルダーにある、Sitecore.Commerce.dll, Sitecore.Commerce.Connect.CommerceServer.dll をStorefrontソリューションフォルダ直下のLibフィルダーにコピーします。

そのほか、プロジェクト内で参照されているdllをSitecoreのWebsite\binフォルダーから、StorefrontソリューションルートフォルダのLib\Sitecore フォルダーにコピーします。また、対応するSitecoreバージョンの Solr Support Package をダウンロードして、zipファイルの中から、 Sitecore.ContentSearch.SolrProvider.dll, Sitecore.ContentSearch.SolrProvider.CastleWindsorIntegration.dllをどうフォルダーにコピーします。

さらに、SitecoreのWebsite\bin\Social の Ninject.dll を ソリューションのフォルダのLib\Sitecore\Social にコピーします。

また、プログラムを修正して発行したときにWeb.configを上書きすると、SitecoreのWebサイトが動作しなくなる可能性がありますので、各Web.configおビルドアクションを [なし] にしておきます。

GACにあるCommerce関連のdllの[ローカルにコピー] プロパティを false にします。この設定を間違えると、SitecoreのWebサイトにdllをコピーしたタイミングでdllのイメージが不正ですというようなエラーメッセージが表示されるので注意してください。設定を忘れた場合は、dllをSitecoreのWebsite\binフォルダから削除すれば復帰できます。

ここで準備OKのはずです。公開の設置をして、いざ公開(昔でいうところの発行)を行うと、 「ターゲット "GatherAllFilesToPublish"はプロジェクト内に存在しません。」というよくわからないエラーが発生します。

Webでエラーを検索かけるといろいろな開発者が問題に出くわしているようです。とりあえずですが、

Commerce.Storefront.csprojをメモ帳で開いて、次の設定のコメントを解除すれば公開(発行)できるようになります。

  <!--<PropertyGroup>
    <VisualStudioVersion Condition="'$(VisualStudioVersion)' == ''">10.0</VisualStudioVersion>
    <VSToolsPath Condition="'$(VSToolsPath)' == ''">$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)</VSToolsPath>
  </PropertyGroup>-->

上記設定を次のようにコメントの解除を行います。

  <!-- -->
  <PropertyGroup>
    <VisualStudioVersion Condition="'$(VisualStudioVersion)' == ''">10.0</VisualStudioVersion>
    <VSToolsPath Condition="'$(VSToolsPath)' == ''">$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)</VSToolsPath>
  </PropertyGroup>
  <!-- -->

また、すぐ近くに次のコメントがあります。

  <!--<Import Project="$(VSToolsPath)\WebApplications\Microsoft.WebApplication.targets" Condition="'$(VSToolsPath)' != ''" />-->

このコメントを解除します。

  <!--  --><Import Project="$(VSToolsPath)\WebApplications\Microsoft.WebApplication.targets" Condition="'$(VSToolsPath)' != ''" /> <!--  -->

設定を保存して、Visual Studioでソリューションを開きなおして、公開(発行)すれば今度は成功するはずです。

はじめて公開するときはWebsiteのプログラムを必ずバックアップするようにしてください。