1

(実行時に).txtファイルからいくつかのコードをコンパイルしようとしているときに、コンパイルされているコードのアセンブリを参照するコードがあります。

何ヶ月も正常に動作していますが、最近、参照されるアセンブリの1つとしてSystem.Speech.dllを追加する必要があり、テキストファイルのコードをコンパイルしようとするとエラーが発生します。

エラーは次のとおりです。

メタデータファイル「System.Speech.dll」が見つかりませんでした

System.Speech.dllもプロジェクトの参照に含まれているため、それが問題になる可能性がある場合は、そうではありません。また、参照されている他のすべてのdllは完全に正常であり、エラーはまったくありません。

コードのセクションは次のとおりです:(さらに必要な場合は、コメントしてください)

        CompilerParameters options = new CompilerParameters();
        options.ReferencedAssemblies.Add("System.dll");
        options.ReferencedAssemblies.Add("System.Core.dll");
        options.ReferencedAssemblies.Add("System.Drawing.dll");
        options.ReferencedAssemblies.Add("System.Speech.dll");

このエラーを取り除くにはどうすればよいですか?ありがとう!

4

2 に答える 2

3

次の変更を行うことで、エラーを再現して解決することができました。

CompilerParameters options = new CompilerParameters();
        options.ReferencedAssemblies.Add("System.dll");
        options.ReferencedAssemblies.Add("System.Core.dll");
        options.ReferencedAssemblies.Add("System.Drawing.dll");
        options.ReferencedAssemblies.Add(@"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.0\Profile\Client\System.Speech.dll");

もちろん、自分の場所に変更する必要があります。

于 2012-07-16T14:00:06.563 に答える
1

コメントに基づいて、私はdllをGACに追加します。.NETに同梱されているgacutil.exeを使用して、GACにアセンブリを追加できます。

共有アセンブリを追加するには、コマンドラインから次のように入力します。

gacutil.exe /i mySpeechAssembly.dll

アセンブリへのフルパスを使用することもできます。

options.ReferencedAssemblies.Add(@"C:\Program Files\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.0\Profile\Client\System.Speech.dll")

しかし、私はそれに反対することをお勧めします。

于 2012-07-16T14:00:53.287 に答える