2016-09-07 4 views
2

誰かがC#を使用して埋め込みリソースにアクセスするための開始点またはコードを教えてくれますか?Visual Studioで組み込みリソースを使用するコードまたはコマンド

私はバッチファイルを実行し、スクリプトとCADファイルをバッチファイルで指定された場所にコピーしたいバッチファイル、スクリプト、CAD図面を正常に埋め込んでいます。

私はアイテムの内容を指定し、EXE内のパスを設定する方法を見つけるのには苦労しています。以下のコードは私がうまくいくと思ったものですが、失敗しました。

System.Diagnostics.Process p = new System.Diagnostics.Process(); 
p.StartInfo.FileName = AppDomain.CurrentDomain.BaseDirectory + "\\Batchfile.bat"; 
p.Start(); 

私はこれが初めてであるとして、C#またはVisual Studioのいずれかを使用してこれを行うには正しい方法で探していた場合、私は正直にさえ知りません。

+0

ないこれがどのように関連してくださいしかし、私は、 'html'と' hta'ファイルと同様の問題を経験していた。http://stackoverflow.com/questions/37965304/how-to-store-hta-html -file-in-project-resources-in-program – Bassie

+0

'.bat'ファイルを実行する方法の詳細については、この質問を参照してください - 実行前にディスクにコピーしなければならないようです。 /stackoverflow.com/questions/15141010/how-to-run-embedded-batch-file-using-process-start-in-c-sharp – Bassie

答えて

3

埋め込みたいファイルを開く。ファイルを右クリックし、Propertiesをクリックします。 PropertiesウィンドウでBuild ActionEmbedded Resourceを変更します。その後

Embedding Resource Visual Studio

あなたはそれを実行できるようにするために、ファイルに埋め込まれたリソースを記述する必要があります。

using System; 
using System.Reflection; 
using System.IO; 
using System.Diagnostics; 

namespace YourProject 
{ 
    public class MyClass 
    { 
     // Other Code... 

     private void StartProcessWithFile() 
     { 
      var assembly = Assembly.GetExecutingAssembly(); 
      //Getting names of all embedded resources 
      var allResourceNames = assembly.GetManifestResourceNames(); 
      //Selecting first one. 
      var resourceName = allResourceNames[0]; 
      var pathToFile = Path.GetDirectoryName(AppDomain.CurrentDomain.BaseDirectory) + 
           resourceName; 

      using (var stream = assembly.GetManifestResourceStream(resourceName)) 
      using (var fileStream = File.Create(pathToFile)) 
      { 
       stream.Seek(0, SeekOrigin.Begin); 
       stream.CopyTo(fileStream); 
      } 

      var process = new Process(); 
      process.StartInfo.FileName = pathToFile; 
      process.Start(); 
     } 
    } 
} 
+1

私はこのコードサンプルをいくつか解読して、あなたの 'アセンブリの宣言(etc)はすべて、ファイルの先頭にある 'using'ステートメントの一部です。誰でも簡単に読むことができる本当のコードのように見せてください。 – krillgar

+0

@krillgar Answer –

+0

ありがとう、私は実際にコードを理解していないと私はどのように私は特定のファイルを選択することができますが、それは私に何をすべきかのスタートを与える。 – 3rutu5

関連する問題