none
LTSC向けの開発環境について RRS feed

  • 質問

  • お世話になります。

    工場で動くWindows用のアプリケーションを開発しています。
    Windows7のサポート切れに伴い、運用先のOSをWindows10に移行しようと考えており、
    次期運用環境としてWindows10 Iot Enterprise LTSC2019上で動かそうと検討しています。
    C++(mfc)、C#(.net 4.0)

    現在Windows7環境では運用先の環境と開発元の環境を合わせるため
    スタンドアロンでOSのバージョンやセキュリティパッチを完全に一致させ、ビルド等を行っています。

    Windows10でも同様の運用を行おうとしましたが、
    OSサポートの関係で問題が発生しました。

    ・開発環境であるWin10 Pro Ver1809のサポートは2020/12/8まで
    ・運用環境であるWin10 Iot Enterprise LTSC2019のサポートは2029/1/9まで

    LTSCの方がサポート期間が長いため、Ver1809のサポートが切れてから
    開発環境と運用環境を合わせることができなくなります。


    IDEであるVisualStudio2017はLTSC上での開発をサポートしていないため、
    開発環境をLTSC2019にすることはできません。(LTSC向けのアプリは開発可能らしいです)
    また、開発環境をVer1809にしている理由はLTSC2019と機能バージョンを一致するためです。

    そこで質問です。
    ・Win10 Pro上でLTSC2019向けのアプリをLTSC2019のサポート期間まで
     安定して開発する方法はあるのでしょうか。
     (Win10ProにLTSC2019のQuality Updateを当て続けるようなことが可能なのか)

    ・そもそも開発環境と運用環境の環境を合わせてビルドすることが必要なのか。

    ・そのほかご意見などあればご教授いただきたくお願いいたします。
    2019年10月1日 8:12

回答

  • そもそも開発環境と運用環境の環境を合わせてビルドすることが必要なのか。

    無意味です。C++言語においては、開発時には開発環境に含まれる.h / .libファイルを参照し、実行時には実行環境に含まれる.dllファイルを使用します。C#言語においては、開発環境やここで配布されているDeveloper Pack(インストール先はC:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework)を参照し、実行時には実行環境の.NETランタイム(インストール先はC:\Windows\Microsoft.NET\Framework\v4.0.30319)を使用します。

    このように開発環境と実行環境は完全に分離されているため、実行環境で開発を行う意味はありません。

    なお、Windows 7のサポート期限とは無関係に.NET Framework 4.0~4.5.1は2016/1/12にサポート終了済みです。

    • 回答としてマーク たないち 2019年10月7日 7:21
    2019年10月1日 8:36
  • >Win10ProにLTSC2019のQuality Updateを当て続けるようなことが可能なのか

    できません。

    おそらくは、手元でデバッグ実行したときに同じ環境で、異なる動作をするリスクを減らしたいと言うことなのでしょうけれども、LTSC は同梱されているバイナリが一部異なるなど、SAC とは差分がありますので、同じ環境とは言えません。
    このため、「デバッグ実行の手間」なのか、「LTSC でサポートされていないというグレーに踏み込む」のか、何か諦める・受容するしかないでしょう。

    • 回答としてマーク たないち 2019年10月7日 7:21
    2019年10月1日 13:07
    モデレータ
  • たないちさん、こんにちは。フォーラムオペレーターのHarukaです。
    ご返信いただきありがとうございます。

    佐祐理さんとAzuleanさん、アドバイスをいただきありがとうございました。

    私も同意します。Win10 Pro上でLTSC2019向けの品質の更新プログラムを適用し続けることはできません。それに、開発環境と運用環境の環境を合わせてビルドする必要はありません。

     

    宜しくお願い致します。


    MSDN/ TechNet Community Support Haruka
    ~参考になった投稿には「回答としてマーク」をご設定ください。なかった場合は「回答としてマークされていない」も設定できます。同じ問題で後から参照した方が、情報を見つけやすくなりますので、 ご協力くださいますようお願いいたします。また、MSDNサポートに賛辞や苦情がある場合は、MSDNFSF@microsoft.comまでお気軽にお問い合わせください。~

    • 回答としてマーク たないち 2019年10月7日 7:21
    2019年10月4日 7:33
    モデレータ
  • APIの互換性が重視されているので、基本的にはそのようなことはないと思うのですが。ドキュメントに記載されていない挙動が変更されたりで逆恨みなんてのはよく見かけますが。

    ちなみにLTSCと言ってもあまり信用していません。セキュリティアップデートで特定条件下でログインに失敗するバグが混入したりとか、アプリケーション側ではどうにもならないトラブルが引き起こされたりもしていますし。

    • 回答としてマーク たないち 2019年10月7日 7:21
    2019年10月4日 14:02

すべての返信

  • そもそも開発環境と運用環境の環境を合わせてビルドすることが必要なのか。

    無意味です。C++言語においては、開発時には開発環境に含まれる.h / .libファイルを参照し、実行時には実行環境に含まれる.dllファイルを使用します。C#言語においては、開発環境やここで配布されているDeveloper Pack(インストール先はC:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework)を参照し、実行時には実行環境の.NETランタイム(インストール先はC:\Windows\Microsoft.NET\Framework\v4.0.30319)を使用します。

    このように開発環境と実行環境は完全に分離されているため、実行環境で開発を行う意味はありません。

    なお、Windows 7のサポート期限とは無関係に.NET Framework 4.0~4.5.1は2016/1/12にサポート終了済みです。

    • 回答としてマーク たないち 2019年10月7日 7:21
    2019年10月1日 8:36
  • >Win10ProにLTSC2019のQuality Updateを当て続けるようなことが可能なのか

    できません。

    おそらくは、手元でデバッグ実行したときに同じ環境で、異なる動作をするリスクを減らしたいと言うことなのでしょうけれども、LTSC は同梱されているバイナリが一部異なるなど、SAC とは差分がありますので、同じ環境とは言えません。
    このため、「デバッグ実行の手間」なのか、「LTSC でサポートされていないというグレーに踏み込む」のか、何か諦める・受容するしかないでしょう。

    • 回答としてマーク たないち 2019年10月7日 7:21
    2019年10月1日 13:07
    モデレータ
  • 佐祐理様

    返信が遅くなり申し訳ありません。的確なアドバイスをご教授いただきありがとうございます。

    どう転んでも開発環境と実行環境を合わせ続けることができないため既存の運用を変えるための

    踏ん切りが必要でした。

    とても知見が深いようですのでご存じであれば教えていただきたいのですが、

    旧来(数十年前?)はWindowsUpdateやサービスパックの違いによってWindowsAPIの引数仕様が変更され

    C++で使用している急に動かなくなったような事例があったようです。

    Win10のセキュリティ更新プログラム(Quality Update)レベルでは

    そのレベルの心配はほぼないととらえても問題ないでしょうか。

    2019年10月2日 0:25
  • Azulean様

    ご教授いただきありがとうございます。

    まさに"異なる動作をするリスクを減らしたい"が目的となります。

    やはり何かしらは受容する必要があるのですね。。。

    貴重な情報ありがとうございました。

    2019年10月2日 0:28
  • たないちさん、こんにちは。フォーラムオペレーターのHarukaです。
    ご返信いただきありがとうございます。

    佐祐理さんとAzuleanさん、アドバイスをいただきありがとうございました。

    私も同意します。Win10 Pro上でLTSC2019向けの品質の更新プログラムを適用し続けることはできません。それに、開発環境と運用環境の環境を合わせてビルドする必要はありません。

     

    宜しくお願い致します。


    MSDN/ TechNet Community Support Haruka
    ~参考になった投稿には「回答としてマーク」をご設定ください。なかった場合は「回答としてマークされていない」も設定できます。同じ問題で後から参照した方が、情報を見つけやすくなりますので、 ご協力くださいますようお願いいたします。また、MSDNサポートに賛辞や苦情がある場合は、MSDNFSF@microsoft.comまでお気軽にお問い合わせください。~

    • 回答としてマーク たないち 2019年10月7日 7:21
    2019年10月4日 7:33
    モデレータ
  • APIの互換性が重視されているので、基本的にはそのようなことはないと思うのですが。ドキュメントに記載されていない挙動が変更されたりで逆恨みなんてのはよく見かけますが。

    ちなみにLTSCと言ってもあまり信用していません。セキュリティアップデートで特定条件下でログインに失敗するバグが混入したりとか、アプリケーション側ではどうにもならないトラブルが引き起こされたりもしていますし。

    • 回答としてマーク たないち 2019年10月7日 7:21
    2019年10月4日 14:02
  • Haruka様

    返信いただきありがとうございます。

    やはり更新プログラムを当て続けることはできないのですね。

    開発環境と運用環境を合わせる必要がないとの貴重なご意見ありがとうございました。

    2019年10月7日 7:28
  • 佐祐理様

    返信が遅くなり申し訳ございません。

    追加の質問にも拘わらず丁寧なアドバイスありがとうございます。

    今ではVisual Studioで使用するsdkのバージョンなども指定できたりするので、APIの互換性が急に変わるなんて

    よっぽどのことだと思います。挙動の変更に関してはしょうがないとあきらめています。

    更新プログラム適用後のテストを増やしてWindows10移行に備えたいと思います。

    ご協力いただいた皆様本当にありがとうございました。

    2019年10月7日 7:34