さて、この問題はちょっと複雑ですが、できるだけ簡単にしようと思います。
このボット サービスは Microsoft の Azure プラットフォームで作成しました。継続的インテグレーション オプションを使用して BitBucket に接続されています。次に、 Visual Studio を使用してローカルでボットをデバッグできるようにするために、こちらの手順に従ってみました。必要なツールをすべてダウンロードしてインストールし、BitBucket プロジェクトをローカル リポジトリにプルしました。ただし、メッセージ フォルダーで「dotnet restore」を実行しようとすると、次のエラー メッセージが表示されました。
C:\...\messages\project.json(1,1): エラー MSB4025: プロジェクト ファイルを読み込めませんでした。ルート レベルのデータは無効です。行 1、位置 1。
この project.json ファイルは、Azure によって自動的に構築されました。なぜ無効にする必要があるのですか?内容は次のようになります。
{
"frameworks": {
"net46":{
"dependencies": {
"Microsoft.Bot.Builder.Azure": "3.1"
}
}
}
}
Visual Studio 2017 でも同じことを試しましたが、今回はメッセージ フォルダーに messages.csproj ファイルを含めました。そして今回、 dotnet restore は、フォルダーに複数あるため、プロジェクト/ソリューション ファイルを指定する必要があると述べました。それが必ずしも問題なのかどうかはわかりませんが、公式ガイドではまったく言及されていないため、少なくとも少し疑わしい. とにかく、project.json を指定すると同じエラーが発生しますが、messages.csproj を指定すると問題なく動作するようで、次のように出力されます。
NuGet Config files used:
C:\Users\Connor.Johnson\AppData\Roaming\NuGet\NuGet.Config
C:\Program Files (x86)\NuGet\Config\Microsoft.VisualStudio.Offline.config
Feeds used:
https://api.nuget.org/v3/index.json
C:\Program Files (x86)\Microsoft SDKs\NuGetPackages\
というわけで、debughost.cmd を実行します。以前は、Azure で利用可能なダウンロード可能な zip ファイル (gitignore にあります) から project.lock.json を手動でコピーする必要がありました。これは、debughost がその内容を自動的に復元しないためです。最近では、それはもはや問題ではないようです。とにかく、debughost.cmd は正常に動作します。
本当の問題は、Visual Studio でこのようなものを開こうとしたときです。bot.sln ファイルを開こうとすると、次のエラー メッセージが表示されます。
ソリューション内の 1 つ以上のプロジェクトが正しく読み込まれませんでした。詳細については、出力ウィンドウを参照してください。
さて、出力ウィンドウには、次の非常に役立つ情報が表示されます。
ソリューションに関連付けられたプロパティの一部を読み取ることができませんでした。
うーん…まあ、Visual Studio で表示されるのは、debughost.cmd、commands.json、readme.md だけです。メッセージ フォルダーはそこにありますが、空です。Azure Functions 関数もあります。それでおしまい。
今、私はこの問題に関する情報を隅々まで調べましたが、どうやらそれを経験したのは私だけです。さらに、VS2015、VS2017 で、Azure からダウンロードしたソース コードのみ (つまり、Git のものなし) と BitBucket リポジトリからボットを開こうとしました。また、Visual Studio のチーム エクスプローラーからソース管理に接続してみました。何も機能していません。何が正しく構成されていないのかについての情報を見つけることができません。私はここでいくつかの助けを借りることができます。