C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[5]: CodeDomの使用方法


(過去ログ 124 を表示中)

[トピック内 6 記事 (1 - 6 表示)]  << 0 >>

■74017 / inTopicNo.1)  CodeDomの使用方法
  
□投稿者/ よしむら (47回)-(2014/11/23(Sun) 16:27:05)

分類:[.NET 全般] 

プログラムソースを文字列に入れて、CodeDomでコンパイルするプログラムを作っています。

CodeDomにMessageBox.Showのような参照追加を必要とするメソッドを使うにはどうしたらいいでしょうか?

普段コンソールアプリケーションで使う場合は、ソリューションから参照追加でdllを指定して使用しますがそういった指定はどのようにしたら良いのでしょうか?

ソースはこちらを参考にしたものです。
http://dobon.net/vb/dotnet/programing/incodecompiler.html

引用返信 編集キー/
■74018 / inTopicNo.2)  Re[1]: CodeDomの使用方法
□投稿者/ 渋木宏明 (43回)-(2014/11/23(Sun) 18:31:49)
渋木宏明 さんの Web サイト
> CodeDomにMessageBox.Showのような参照追加を必要とするメソッドを使うにはどうしたらいいでしょうか?

CompilerParameters.ReferencedAssemblies でアセンブリ参照を与えます。
引用返信 編集キー/
■74073 / inTopicNo.3)  Re[2]: CodeDomの使用方法
□投稿者/ ひでお (8回)-(2014/11/27(Thu) 21:23:31)
2014/11/27(Thu) 21:25:14 編集(投稿者)

 
引用返信 編集キー/
■74074 / inTopicNo.4)  Re[3]: CodeDomの使用方法
□投稿者/ よしむら (49回)-(2014/11/27(Thu) 21:27:35)
No74018 (渋木宏明 さん) に返信
>>CodeDomにMessageBox.Showのような参照追加を必要とするメソッドを使うにはどうしたらいいでしょうか?
>
> CompilerParameters.ReferencedAssemblies でアセンブリ参照を与えます。

返信が遅くなってしまいもうしわけございません。
MessageBox.Showは教えていただいた方法でできました。ありがとうございます。

.NETの参照の追加は問題なくできるのですが、COMの追加は同じ方法ではうまくいきませんでした。
www.geocities.co.jp/NatureLand/2023/reference/Web/web02e.html
こちらで紹介されているようなIEを自動化するソースをCodeDomでコンパイルしたいのですが、
Microsoft HTML Object Library(MSHTML)とMicrosoft Internet Controls(SHDocVw)の参照追加ができません。

System.CodeDom.Compiler.CompilerParameters cps =
new System.CodeDom.Compiler.CompilerParameters();

//パターン1      
cps.ReferencedAssemblies.Add("MSHTML.dll");
cps.ReferencedAssemblies.Add("SHDocVw.dll");

//パターン2
//dllとtlbをexeのあるフォルダに入れて
cps.ReferencedAssemblies.Add("ieframe.dll");
cps.ReferencedAssemblies.Add("mshtml.tlb");


//パターン3
cps.ReferencedAssemblies.Add("C:\\Windows\\SysWOW64\\ieframe.dll");
cps.ReferencedAssemblies.Add("C:\\Windows\\SysWOW64\\mshtml.tlb");


以上3パターンをためして
SHDocVw.InternetExplorer ie;
を含んだソースが一度もコンパイルは成功しませんでした。
どのようにしたらよいでしょうか?




引用返信 編集キー/
■74077 / inTopicNo.5)  Re[4]: CodeDomの使用方法
□投稿者/ Azulean (375回)-(2014/11/27(Thu) 22:21:16)
それらはマネージアセンブリではないからでしょう。

Visual Studio 上で参照設定をした場合、裏側では ActiveX/COM のタイプライブラリからマネージアセンブリを生成し、それを参照する仕組みが動きます。
CodeDom の場合はそれが勝手に動かないのではないでしょうか?

だとすると、aximp/tlbimp 相当のことを自分でやる必要があります。

http://msdn.microsoft.com/ja-jp/library/8ccdh774
http://msdn.microsoft.com/ja-jp/library/tt0cf3sx
引用返信 編集キー/
■74089 / inTopicNo.6)  Re[5]: CodeDomの使用方法
□投稿者/ よしむら (50回)-(2014/11/28(Fri) 22:19:25)
一筋縄では以下なそうですね!自分でdllを作って参照した方が簡単かな?

ありがとうございました。
解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -