none
.Net Framework3.5を使ったプログラムの中で.Net Framework4.0を使ったプログラムを動かしたい。 RRS feed

  • 質問

  • Ruby出の開発経験はありますが、C#はまだまだ初心者のBURIと申します。

    現在棒読みちゃんというプログラムのプラグインを開発しております。

    このプラグインは.NET Framework3.5で動作するものです。

    棒読みちゃんプラグインの作成法 夏研プログを参考に実装しています。

    これに組み込みたいプログラムが先に質問しましたCeVIOの外部連携ができない、CeVIO Creative Studioの外部連携で感情を設定したい。

    のようなプログラムなのですが、こちらは.Net Framework4.0で動作しています。

    バージョンの差を吸収するにはどのような方法が考えられますでしょうか?

    2014年6月27日 5:04

回答

  • 基本的な使い方では、.NET 3.5 のアセンブリが .NET 4 のアセンブリを見ることはできません。

    このあたりを読む限り、COM のインターフェースも公開されているようなのでそちらで試してみるのはいかがでしょうか。
    なお、これを試される際は、.NET Framework 3.5 のプロジェクトとして生成されるように選択してください。

    この手順がダメとなると、.NET 3.5 アプリから .NET 4 アプリに通信するとか、非常に面倒でかつ初心者がうかつに使えない技になるのではないか?と予想しています。

    • 回答としてマーク BURI55 2014年6月27日 23:48
    2014年6月27日 14:39
    モデレータ

すべての返信

  • > 現在棒読みちゃんというプログラムのプラグインを開発しております。 このプラグインは.NET Framework3.5で動作するものです。

    それが何だか分かりませんが、ご自分で作っているのですよね。それならプラットフォームは自由になるはずですが、それを .NET 4 にできない理由があるのですか?

    2014年6月27日 5:46
  • プラグインとのことですから、大元のアプリの想定環境に依存する(変えられない)ということでしょうきっと。

    2014年6月27日 6:16
  • こちらは.Net Framework4.0で動作しています。

    初心者ということですが、Visual Studioでターゲットの.NET Frameworkのバージョンを変更できることをご存じでしょうか?
    もし、ご存じなく、可能であれば以下を参考にして.NET Framework3.5に変更されるとよいと思います。

    方法: 特定の .NET Framework のバージョンまたはプロファイルを対象として指定する
    http://msdn.microsoft.com/ja-jp/library/vstudio/bb398202(v=vs.100).aspx


    ★良い回答には回答済みマークを付けよう! わんくま同盟 MVP - Visual C# http://d.hatena.ne.jp/trapemiya/

    2014年6月27日 6:44
    モデレータ
  • 初心者ということですが、Visual Studioでターゲットの.NET Frameworkのバージョンを変更できることをご存じでしょうか?
    もし、ご存じなく、可能であれば以下を参考にして.NET Framework3.5に変更されるとよいと思います

    否定するようで申し訳ないですが、「使いたいアセンブリが .NET 4 を対象にしているが、作りたいアセンブリは .NET 3.5 でなければならない」という条件なので、バージョン選択は今回の課題に対する答えになりません。
    2014年6月27日 14:37
    モデレータ
  • 基本的な使い方では、.NET 3.5 のアセンブリが .NET 4 のアセンブリを見ることはできません。

    このあたりを読む限り、COM のインターフェースも公開されているようなのでそちらで試してみるのはいかがでしょうか。
    なお、これを試される際は、.NET Framework 3.5 のプロジェクトとして生成されるように選択してください。

    この手順がダメとなると、.NET 3.5 アプリから .NET 4 アプリに通信するとか、非常に面倒でかつ初心者がうかつに使えない技になるのではないか?と予想しています。

    • 回答としてマーク BURI55 2014年6月27日 23:48
    2014年6月27日 14:39
    モデレータ
  • 棒読みちゃんは他の人が作ったもので、なちゃさんの言うとおりの状況です。
    2014年6月27日 23:31
  • CeVIO Creative Studioは.NET4.0で動いていますので、外部連携プログラムも.NET4.0で書くようなかんじらしいので、やはり言われるとおり、.NET3.5では外部連携プログラムが動きませんでした。

    COMインターフェイスやC++の知識がないので手を出しにくいです。

    ですから、渡すのは文字列だけですので、.NET4.0の外部連携プログラムを引数で発生するコンソールアプリにして、.NET 3.5側のプラグインはランチャーにすると

    いうことを考えました。コンソールアプリをアプリから起動することはできても、引数を渡すことができるかどうかがわかりませんがとりあえずやってみます。

     

    2014年6月27日 23:46
  • >否定するようで申し訳ないですが、「使いたいアセンブリが .NET 4 を対象にしているが、作りたいアセンブリは .NET 3.5 でなければならない」という条件なので、バージョン選択は今回の課題に対する答えになりません。

    あ~、完全に勘違いしてました。申し訳ない。
    ご指摘、ありがとうございました。


    ★良い回答には回答済みマークを付けよう! わんくま同盟 MVP - Visual C# http://d.hatena.ne.jp/trapemiya/

    2014年6月28日 5:41
    モデレータ