2012-04-04 25 views
7

İçinde 5000'den fazla kaynak dizesi bulunan bir projem var. Hemen hemen hepsinin tanımlayıcılarında dönemleri vardır. Biz üzerinde geçiş yapıyorsanız"Kaynak adı geçerli bir tanımlayıcı değil" Yazdır

otomatik kesinlikle yazılan sınıfları üreten ve tabii ki, çünkü dönemlerinin, biz birkaç bin uyarıları

kaynak adı 'selam' geçerli bir tanımlayıcı değil görüyoruz.

Bunun olmadığını biliyorum, jeneratörün alt çizgilere dönüştüğünü ve her şeyin iyi olduğunu.

Uyarıyı bastırabilir miyim? #pragma ile ilişkili bir sayıya sahip görünmüyor. Belirli bir .cs Ayrıca uyarı tıklayın ve göster Hata Yardım sağ tıklamak gerekir

#pragma warning disable 

dosyasını için

+0

cevap "hayır" dır. Ve anahtarları değiştiremediğimizden (yerelleştirmemiz kapalı), oldukça fazla sıkışmış durumdayım. – Stu

cevap

6

'daki ayrıntıları ziyaret ederek bastırılamayacağınızı da onaylayabilirsiniz. Project + Properties, Resources ve "foo.bar" gibi bir dize kaynak adı yazarak bu uyarıyı tetikler.

Evet, bu uyarıyı bastıramıyorsunuz, IDE'deki kaynak tasarımcısı tarafından üretiliyor. Kod, Properties \ Resources.resx dosyasından Properties \ Resources.Designer.cs dosyasına otomatik olarak oluşturulduğunda. .resx dosyasına bakın ve <data> öğelerindeki "name" özelliğini kontrol edin. Özellik değerindeki bir süre, uyarıyı tetikler.

Bir regexp ile özenle hazırlanmış bir arama ve değiştirme işlemi, süreleri alt çizgilere dönüştürerek bunu düzeltebilir. Bu bana iki sorun verir, sadece XDocument kullanan küçük bir program yazarım. Ayrıca bu otomatik olarak oluşturulmuş koda hala ihtiyacınız olup olmadığını kontrol edin, değiştirdiğiniz gibi geliyor.

+0

Hayır, manuel yansımalardan otomatik oluşturulan sınıflara geçiyoruz. Sadece yeniden adlandırma, bu tanımlayıcıları kapatan bir i18n araç zincirine sahip olduğumuzdan işe yaramaz. Sigh ... – Stu

+0

Bu sana yardım etmeme yardımcı olmuyor. Kaynak tasarımcısı tarafından oluşturulan uyarı hala en sevdiğim açıklamadır. –

+0

Daha açık olmalıydı, sanırım. Birisi bir geçici çözüm bulmazsa, yine de size ödül veririm. – Stu

3

Bu tüm uyarıları bastırır. Tam uyarı numarasını vermeli, böylece proje özelliklerine, daha sonra yapı sayfasına girip Uyarıları Yazdır metin kutusuna girerek tüm proje için sadece bu uyarıyı kaldırabilirsiniz. Daha fazla araştırma yaptıktan sonra bazı uyarıların bastırılamayacağı anlaşılmaktadır. Msdn ile ilgili ayrıntılar için bkz./Nowarn C# Derleyici seçenekleri http://msdn.microsoft.com/en-us/library/7f28x9z3.aspx

Bunlardan biri, "geçerli bir tanımlayıcı değil" uyarısını gösteren Derleyici Uyarısı (Düzey 1) CS2029'dur. Ayrıca, Derleyici Uyarısı (1. düzey) CS2029 burada http://msdn.microsoft.com/en-us/library/878y1894.aspx

+0

.cs dosyaları otomatik olarak oluşturulur. Uyarı numarası yok. – Stu

+0

2029 değil. Sayı yok./W0'ın bir etkisi yoktur. – Stu

2

A burada GERÇEKTEN korkunç-etrafında çalışma de-çift olacaktır Kaynak aracından üretilen kod:

senin kaynak dosyasının adı

  1. Açık Resources.resxolduğunu varsayalım Visual Studio içindeki projedeki Resources.resx öğesini çift tıklatarak kaynak aracı.

  2. Erişim değiştiricinizi, kullanmakta olduğunuz kod kapsamına uygun şekilde ayarlayın.

  3. Windows explorer olarak, dizin konut sizin Resources.resx ve Resources.Designer.cs kod gidin.
    için Resources.cs

  4. geri dön

  5. Resources.Designer.cs Rename (Ya elle tarama veya proje/ad klasörü sağ tıklayarak ve "Windows Explorer Klasör Aç" seçerek) Visual Studio kaynak aracı ve "Sh tıklayın

  6. kaydet, kaynak aracını

  7. kapatmak "Hayır kod üretme" Erişim değiştirici ayarlayabilirsiniz Tüm dosyalar "çözüm gezgin penceresinin üstündeki" simgesi. Resources.cs dosya

  8. Sağ Resources.cs tıklayıp başlamak için hayalet şeklinde aynı klasörde Resources.resx görünür "Projesine Dahil" gerektiği

uyarılar artık ortadan kalkmalı. Tabii ki, bu çalışmanın yarattığı rahatsızlık, kaynak dosyasını değiştirdiğinizde tüm bu adımları yapmanız gerekecek.

0

Bu uyarı, kaynak adı geçerli bir tanımlayıcı değilse (örneğin, boşluk veya '-') ve dosya için güçlü yazılan kaynak oluşturma açıksa bu uyarı oluşur. Bu, bir hata yerine bir uyarıdır, çünkü güçlü bir şekilde yazılmış kaynak adı geçerli bir ad olarak değiştirilir (örneğin, "a b" "a_b" olarak değiştirilir), ancak kaynak adı "a b" olarak kalır.

mümkünse Önce, geçerli bir tanımlayıcı ile kaynağın adını değiştirmek gerekir bu hatayı

düzeltmek için. Bu geçerli bir seçenek değilse, bu .resx dosyası için güçlü yazılan kaynak kodu nesli devre dışı bırakın. Bunu yapmak için, Solution Explorer'da .resx dosyasını seçin ve Custom Tool özelliğini temizleyin.

KAYNAK: http://msdn.microsoft.com/en-us/library/ms228672(v=vs.80).aspx

+0

ve ne kod (.Designer.cs) gerekiyorsa ve kaynak adını hiç yeniden adlandıramıyorum .. ?? başka bir çözüm var mı ..? – shashwat

İlgili konular