none
JScriptに関しての質問です RRS feed

  • 質問

  • 新しいプロジェクト作成にて、テキストボックスに入力された文字が計算式として正しいかどうかの判定をするプログラムを作りました。【下記参照下さい VB.NET2005にて記述】

     

    Dim VsaEngine As Microsoft.JScript.Vsa.VsaEngine = Microsoft.JScript.Vsa.VsaEngine.CreateEngine()
    On Error Resume Next

       ・

       ・

       ・

       ・

    Dim Result As Decimal = CDec(Microsoft.JScript.Eval.JScriptEvaluate(テキストボックスの文字.ToString(), VsaEngine))

     

    としたところ正常な動作が確認できたので、別プロジェクトにて変更中の○○○.vbに上記部分を貼り付けたところ・・・

     型 'Microsoft.JScript.Vsa.VsaEngine' が定義されていません。

     'JScript' は 'Microsoft' のメンバではありません。

    とエラーが表示されます。

     

    本日の13時から1時間ほど多数サイトにて検索しましたが、解決方法等の検討がつかなかったので投稿しました。

     

    初心者のため不都合な点があるかもしれませんが、ご教授いただければ幸いです。

    2008年7月24日 5:26

回答

  • VsaEngine クラスを提供しているアセンブリ(dll)を参照する必要があります。必要なアセンブリを参照設定で追加してください。どのアセンブリがそうなのかは、MSDN やヘルプの該当クラスの解説にかかれています。

    ところで VsaEngine とかって Obsolete のはずです。JScriptCodeProvider の CompileAssemblyFromSource とかに置き換えた方がいいかもしれません。
    2008年7月24日 5:37

すべての返信

  • 外池と申します。ご質問の趣旨が、このフォーラムに相応しいかどうかわかりませんが・・・、

    とりあえず、状況をもう少し詳しく教えていただきたいのですが、

     

    「正常な動作が確認できた」という開発環境と、「別プロジェクト」の開発環境ですが、同じマシン上なのでしょうか? それとも、別のマシンなのでしょうか? 単純に「別プロジェクト」の開発環境では、JScriptを扱う条件が整っていないだけのように思うのですが。

     

     

    2008年7月24日 5:36
  • VsaEngine クラスを提供しているアセンブリ(dll)を参照する必要があります。必要なアセンブリを参照設定で追加してください。どのアセンブリがそうなのかは、MSDN やヘルプの該当クラスの解説にかかれています。

    ところで VsaEngine とかって Obsolete のはずです。JScriptCodeProvider の CompileAssemblyFromSource とかに置き換えた方がいいかもしれません。
    2008年7月24日 5:37
  • 外池 様

     

    ご連絡いただきましてありがとうございます。

     

    試しに作ったプロジェクトと、編集中のプロジェクトは同一マシン(WinXP sp2)にて編集しております。

    2008年7月24日 5:44
  • Hongliang 様

     

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

    参照設定に「Microsoft.JScript.dll」と「Microsoft.Vsa.dll」を追加したところエラーは解消されました。

     

    その変わりに、【Microsoft.JScript.Vsa.VsaEngine' は旧形式です】と警告が出るようになりました。(サンプル.vbにも出ています。)

    この件が、置き換えが必要な部分なのでしょうか?

    2008年7月24日 5:49
  • そのとおりですが、置き換えが必要かどうかは私には判断できません。警告の詳細メッセージをよく読んだ上で置き換えるかどうか御自分で判断なさってください。
    2008年7月24日 6:45
  • こんにちは。中川俊輔 です。

     

    Hongliangさん、回答ありがとうございます。

     

    かさこさん、フォーラムのご利用ありがとうございます。

    有用な情報と思われたため、Hongliangさんの回答へ回答済みチェックをつけさせていただきました。

     

    回答済みチェックが付くことにより、有用な情報を探している方が情報を見つけやすくなります。
    有用な情報と思われる回答があった場合は、なるべく回答済みボタンを押してチェックを付けてください。

    かさこさんはチェックを解除することもできますので、ご確認ください。

     

    それでは!

    2008年8月5日 9:16