2009-12-12 22 views
11

Bir kaynak dosya (dağıtım için hazırlanma sürecinde) oluşturmak, belirli ayarlarla (büyük XML yapısı) ve bazı metinlerle doldurmak istiyorum ama nasıl yapılacağından emin değilim söyledi.Program aracılığıyla kaynak dosyası oluştur

ResXResourceWriter'u kullanarak bazı örnekler buldum, ancak açmaya çalışırken kaynak anahtarını bulamıyor. İşte ben bugüne kadar ne var:

private void simpleButton1_Click(object sender, EventArgs e) 
{ 
    using (System.IO.MemoryStream oStream = new System.IO.MemoryStream()) 
    { 
     this.layoutControl1.SaveLayoutToStream(oStream); 
     using (ResXResourceWriter oWriter = new ResXResourceWriter(@"..\..\Properties\LayoutControl.resources.Resx")) 
     { 
      oWriter.AddResource("one", oStream.GetBuffer()); 
      oWriter.Generate(); 
      oWriter.Close(); 
     } 
    } 

} 

private void simpleButton2_Click(object sender, EventArgs e) 
{ 
    ResourceManager rm = new ResourceManager("WindowsFormsApplication1.LayoutControl", Assembly.GetExecutingAssembly()); 
    var one = rm.GetObject("one"); 
    Console.WriteLine(""); 
} 

Ben simpleButton1 tıklayarak kaynak oluşturmak, o zaman yeniden derlemek, benim projeye bir eklenti mevcut-öğeyi yapmak, uygulamayı durdurmak ve simpleButton2 tıklayın, ardından bir

olsun

MissingManifestResourceException (Belirtilen kültür veya nötr kültüre uygun kaynak bulunamadı. "WindowsFormsApplication1.LayoutControl.resources" bileşeninin derleme zamanında "WindowsFormsApplication1" derlemesine veya tüm uydu derlemelerine doğru şekilde bağlandığından emin olun. gerekli yüklenebilir ve tamamen imzalanmış.)

Birisi bana bazı işaretçiler veya daha iyi bir çalışma örneği verebilir mi? Ve eğer kaynak 'normal' kaynak dosyaları gibi 'ayrı' bir meclise derlerse onu tercih ederim.

cevap

8

Oldukça yakınsınız - ResourceManager'a aktardığınız baseName biraz kapalı.

Derlemekte olduğunuz tüm resx dosyaları, ve varsayılan ad alanı ile yoldaki herhangi bir klasörde adlandırılır. Gönderinizde "WindowsFormsApplication1.Properties.LayoutControl.resources" ifadesinden geçiyor olmalısınız.

+1

teşekkürler djeebus, bu harika çalıştı! – Jurjen

İlgili konular