मैं CSharpCodeProvider का उपयोग कर नीचे दिए गए कोड को संकलित करने का प्रयास कर रहा हूं। फ़ाइल सफलतापूर्वक संकलित की गई है, लेकिन जब मैं जेनरेट की गई EXE फ़ाइल पर क्लिक करता हूं, तो मुझे एक त्रुटि मिलती है (विंडोज इस समस्या के समाधान की खोज कर रहा है) और कुछ भी नहीं होता है।मैं एम्बेडेड संसाधन से फ़ाइल कैसे निकाल सकता हूं और इसे डिस्क पर सहेज सकता हूं?
जब मैं CSharpCodeProvider का उपयोग कर नीचे कोड संकलन, मैं कोड की इस पंक्ति का उपयोग कर एक एम्बेडेड संसाधन फ़ाइल के रूप में MySql.Data.dll
जोड़ दिया है:
if (provider.Supports(GeneratorSupport.Resources))
cp.EmbeddedResources.Add("MySql.Data.dll");
फ़ाइल सफलतापूर्वक एम्बेडेड है (क्योंकि मैं फ़ाइल आकार में वृद्धि हुई है देखा)।
नीचे दिए गए कोड में, मैं एम्बेडेड DLL फ़ाइल निकालने और इसे System32 पर सहेजने का प्रयास करता हूं, लेकिन नीचे दिया गया कोड किसी कारण से काम नहीं करता है।
namespace ConsoleApplication1
{
class Program
{
public static void ExtractSaveResource(String filename, String location)
{
//Assembly assembly = Assembly.GetExecutingAssembly();
Assembly a = .Assembly.GetExecutingAssembly();
//Stream stream = assembly.GetManifestResourceStream("Installer.Properties.mydll.dll"); // or whatever
//string my_namespace = a.GetName().Name.ToString();
Stream resFilestream = a.GetManifestResourceStream(filename);
if (resFilestream != null)
{
BinaryReader br = new BinaryReader(resFilestream);
FileStream fs = new FileStream(location, FileMode.Create); // Say
BinaryWriter bw = new BinaryWriter(fs);
byte[] ba = new byte[resFilestream.Length];
resFilestream.Read(ba, 0, ba.Length);
bw.Write(ba);
br.Close();
bw.Close();
resFilestream.Close();
}
// this.Close();
}
static void Main(string[] args)
{
try
{
string systemDir = Environment.SystemDirectory;
ExtractSaveResource("MySql.Data.dll", systemDir);
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
Console.ReadKey();
}
}
}
}
मैं संसाधन के रूप में एम्बेडेड DLL फ़ाइल को कैसे निकाल सकता हूं और इसे System32 पर सहेज सकता हूं?
रफ़ीक, आप नीचे थॉमस सैप के उत्तरों की समीक्षा करनी चाहिए क्योंकि यह आपके द्वारा स्वीकार किए जाने वाले किसी भी व्यक्ति से बिल्कुल बेहतर है। – motoDrizzt