2014-09-24 41 views
2

我有這個服務,它是一個.exe文件,並且我有一個安裝該服務的.exe文件。是否有可能運行安裝程序exe>寫入服務exe>然後做其他事情,所以你不必有2個.exe文件,但只有1個?用另一個寫一個可執行文件

+0

您可以使用service exe並使用'installUtil'手動安裝服務,而不是爲您的服務創建安裝程序。 – Habib 2014-09-24 15:02:28

+0

我有一個自動安裝程序,我不想使用手動安裝 – thijmen321 2014-09-24 15:04:06

回答

1

您可以將service.exe作爲install.exe的EmbeddedResource添加。

要提取你可以這樣做:

try 
{ 
    File.WriteAllBytes(@"c:\service.exe", Resources.embeddedserviceexe); 
} 
catch 
{ 
    // ToDo 
} 

如果你不想你的exe文件(在你的項目屬性通過資源管理器)添加到項目資源,你可以添加的exe給你項目,設置其屬性EmbeddedResource然後執行:

try 
{    
    using (Stream resourceStream = Assembly.GetExecutingAssembly().GetManifestResourceStream("Namespacename.service.exe")) 
    { 
     using (FileStream fileStream = new FileStream(@"c:\service.exe", System.IO.FileMode.Create)) 
     { 
      for (int i = 0; i < resourceStream.Length; i++) 
       fileStream.WriteByte((byte)resourceStream.ReadByte()); 
     } 
    } 
} 
catch 
{ 
    // ToDo 
} 
-1

這就像生下:) 我可能會選擇另一種方法。如何使用包?

+0

這不回答OP的問題或解釋建議的替代方案。 – 2014-09-24 15:48:09