2011-07-01 9 views
0

うまくいけば簡単ですが、試して試して失敗し続けます。 CSSファイルを特定の場所にコピーするC#アプリケーションでStreamオブジェクトを作成しようとしています。 CSSファイルが自分のリソースに埋め込まれています。 私はストリームオブジェクトを試したのは常にnullです。リソースストリームは常にnullですか?

誰かが正しい方向を指していることを、以下で見てください。

感謝:) burrows111

Assembly Assemb = Assembly.GetExecutingAssembly(); 
Stream stream = Assemb.GetManifestResourceStream(ThisNameSpace.Properties.Resources.ClockingsMapStyle); // NULL!!!! 
FileStream fs = new FileStream("to store in this location", FileMode.Create); 
StreamReader Reader = new StreamReader(stream); 
StreamWriter Writer = new StreamWriter(fs); 
Writer.Write(Reader.ReadToEnd()); 
+0

MSDNからこのメソッドは、別のアセンブリ内のプライベートリソースがアクセスされ、呼び出し元にReflectionPermissionFlag.TypeInformationフラグを持つReflectionPermissionがない場合、null参照(Visual BasicではNothing)を返します。 –

答えて

2

これは私の作品:

StreamReader reader; 
StreamWriter writer; 
Stream stream; 
Assembly assembly = Assembly.GetExecutingAssembly(); 

using (stream = assembly.GetManifestResourceStream("Namespace.Stylesheet1.css")) 
using (reader = new StreamReader(stream)) 
using (writer = new StreamWriter("test.css")) 
{ 
    string content = reader.ReadToEnd(); 
    writer.Write(content); 
    writer.Close(); 
}  

私はWindows標準でそれを試してみましたが、アプリケーションフォーム。

EDIT:ファイル(Stylesheet1.css)は、ビルドアクションが "埋め込みリソース"のプロジェクトの通常の項目として含まれていました。

関連する問題