Microsoft Inspire 2017 Day 1 Vision Keynote

そんなわけでInspireです。

アナウンス的にはAzure StackがGAしたのとMicrosoft 365とかですかね。あとWindows Mixed RealityとSurfaceのパートナープログラムとか。

続きを読む

Microsoft MVP for Microsoft Azure

受賞できました。7年目です。
そういえばRegional Directorも更新したぽいです。

また1年間いろいろがんばりたいと思います。若手が増えてきたのでそろそろ抜けても大丈夫な気がします。

  • Azure界の やまもとまさ こと やまさ こと 世界のやまさ  @nnasaki / nnasakiのブログ に任せておけば安泰
  • 人形町の岬くんこと @_iwate / Qaramell Blog に任せればだいたいの無茶ぶりはOK
  • 元さくらの妖精こと @kanreisa / ポテチに関する雑記帳に任せればだいたいのことは実現できそう
  • Service FabricとStorageにCosmos DBといえば おーみさん に任せておけばDeepなところまで大丈夫ですね。(ただしアルコール入ってない場合)
  • 縄コラムとLogic AppsやMicrosoft Flowで有名な縄神様ことクマー兄者 @twit_ahf 氏もいるのでもはや盤石といえましょう。(何が

あとは継続してしばやん先生ムッシュにお願いすればAzure以外も大丈夫そうです。

※このエントリは頑張ってステマしようと試みてるエントリです(びっくりするほど一昨年昨年のコピペです)

App Service の CI/CDでビルドエラー

ちょっとはまったのでメモ。(そのうち改善されると思われる)

はまった環境: Visual Studio 2017 で .NET Framework 4.6.2 なクラスライブラリでNuGetなパッケージを使用しているC#プロジェクト(NuGetはPackageReferenceを参照する)と、それを参照するASP.NETなアプリ(1つのソリューションにASP.NETとクラスライブラリなプロジェクトがある状態)
はまった理由:  App Service上(Kudu上)で msbuild 15.x がないから(たぶん)

普通にApp Service上でCI/CDを使って(今回はLocal Git)上記なプロジェクトをデプロイ(git push)すると以下のようにNuGetで取得するパッケージに含まれるアセンブリが見つからない旨のエラーがでてビルドに失敗します。(nuget restoreやdonet restoreしてるにも関わらず)

省略
:
remote: D:\Program Files (x86)\dotnet\sdk\2.0.0-preview1-005977\Microsoft.Common.CurrentVersion.targets(1964,5): warning MSB3245: Could not resolve this reference. Could not locate the assembly "Newtonsoft.Json, Version=10.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL". Check to make sure the assembly exists on disk. If this reference is required by your code, you may get compilation errors. [D:\home\site\repository\web1\Shared\Shared.csproj]
:
以下略

カスタムデプロイスクリプトを使用するようにして、dotnet build や dotnet msbuild を使ってもダメです。
※Kudu上に現状Previewなmsbuildがありますがそちらを使ってもダメ
※ちなみにプロジェクトがPackage.configを参照するようになってたら問題なくビルドできます。PackageReferenceの場合のみおかしい。

回避策: クラスライブラリなプロジェクトファイル(.csproj)を新しい形式に変換する

変換は以下のURLを参考に。

最低限Project要素の属性を新しくして TargetFrameworkVersion を TargetFrameworkにしてv.4.6.2 とかを net462 とかにします。あとは不要な要素はバスバスけして、AssemblyInfo.csも消したりしました。
修正後、Visual Studio 2017上でちゃんとプロジェクトがロードできてビルドできればひとまず大丈夫かと思います。(Minなcsprojにしてから後でNuGetパッケージ追加したりもろもろいじってもよいかと思います。

変換後は dotnet build や dotnet publish で問題なくビルドできます。(つら)

過渡期な問題だと思いますが、もし嵌った人がいれば参考にしてもらえると。