Kaynak dosyaları (resx) ad alanı ve erişim değiştirici değiştirme | tutuappapks.com
Web projemde 4 kaynak dosyası kullanıyorum App_GlobalResources Klasör. Onlardan biri (lang.resx) projeye gelmeden önce oluşturuldu. Doğru isim alanına sahip (WebApplication.App_GlobalResources) ve erişim değiştirici: public.
Diğer taraftan, yeni oluşturduğum diğer üç Kaynak dosyası farklı bir ad alanına sahip (Resources) ve internal erişim değiştirici ve Visual Studio'dan Kaynak Dosya Formunda değiştiremiyorum çünkü devre dışı. Doğrudan designer.cs dosyasında değiştirmeye çalışırsam, dosyanın bir sonraki kaydında değişiklikler iptal edilir.
Bu kritik bir hata değildir, ancak projedeki diğer geliştiriciler için kullanacakları kaynak dosyaları için farklı ad alanları ve erişim düzenleyicileri bulma konusunda yanıltıcı olabilir.
Sorunun henüz nerede yattığından emin değilim, ancak kodu üretmek için kullanılan aracı değiştirerek çözebileceğinizi söyleyebilirim.
Takip etmeye çalıştığımda Bu makaleBen de bu problemin üzerine çıkmıştım. Kaynak dosyaları yazarın önerdiği şekilde indirdikten sonra, halihazırda var olan kaynak dosyasının "Özel Araç" özelliğinde şu sınıfta olduğunu fark ettim: "PublicResXFileCodeGenerator". Ayrıca, "Oluşturma Eylemi" özelliği "Gömülü Kaynak" olarak ayarlandı, ancak sorunun bir parçası olup olmadığından emin değilim.
Oluşturduğum herhangi bir yeni kaynak dosyası "GlobalResourceProxyGenerator" özel aracını kullandı. Daha önce bahsedilen "PublicResXFileCodeGenerator" ile üzerine yazdıktan sonra, problemi çözmüş görünüyordu, gerçek sorun ne olursa olsun.
Ayrıca mevcut kaynak dosyanın "2.0" formatında olduğunu, yeni dosyaların ise "1.3" formatında olduğunu fark ettim. Resx dosyasını bir XML düzenleyicisi kullanarak (veya görsel stüdyonun kendisiyle "açık" yı kullanarak) açtığınızda bunu görebilirsiniz.
Umarım bu şekilde çalışabilirsin, ama ideal değil. Visual Studio 2008 ve SP1 ile bir yükleme sorunu veya bunun gibi bir şey olması muhtemeldir.
Bu blog girişi ayrıca yardımcı olabilir.
Çok kullanışlı blog girişi. Teşekkürler! - ongle
Bu, VS2010'da da olur: projeye bir resx dosyasını kopyalama veya yapıştırma sorunu olabilir, eğer bunu yaparsanız, .Resx dosyasını GlobalResourceProxyGenerator'a ayarlar. - Chris S
Hızlı cevap şudur: Kaynak dosyasının Özelliklerini açın ve Custom Tool Namespace İhtiyacınız olan ad alanına.
VS2012 için en basit cevap - Jeff Paquette
Veya CustomTool özniteliğini değiştirebilirsiniz (VS2010'da test edilmiştir).
Sadece kaynak dosyanın dosya özelliklerini açmanız ve “GlobalResourceProxyGenerator” dan “Özel Aracı” nı değiştirmek Yerel için varsayılan Araç olan “PublicResXFileCodeGenerator” kaynak dosyaları. Ardından, “Oluşturma Eylemi” ni değiştirmek zorundasınız. “Gömülü Kaynak”. Ayrıca uygun bir özel araç atamak da isteyebilirsiniz Dosyaya doğru bir şekilde erişmek için “Kaynaklar” gibi ad alanı, ancak Bu gerekli değil ...
ASP.NET'i kullanırken dikkat edin, çünkü "Gömülü Kaynak" ile yayınlarken bu, sunucuda yayınlanmayabilir. "İçerik Oluştur", "İçerik" olarak iyi çalışıyor ancak - Wagner Leonardi
Resx, Visual Studio proje yapılandırmanızda belirtilen ad alanına bağlı olarak ad alanını alır. Projenizi doğru ad alanına sahip olacak şekilde güncelleyin ve resx onu miras almalıdır (yeni olanlar kesin, mevcut olanların düzeltilip düzeltilmeyeceğinden emin olmamalıdır).
varsayılan proje ad alanı iyi görünüyor: WebApplication - Michael Pereira
Kaynak Dosyaları erişim değiştiricileri .csproj;
Doğrudan değişen .csproj dosya bu sorunu geçici çözüm bulmalıdır.
Aramak <Generator> aşağıdaki örneklere uygun olarak öğeyi ayarlayın ve değerini ayarlayın:
İle bir kaynak dosyası internal değiştirici böyle görünüyor
bir kaynak dosyası ile public değiştirici böyle görünüyor.
Cevabınızı genişletirseniz bu da yardımcı olur. nerede içinde .csproj birinin bakması gerekiyordu. Anlayabildiğim kadarıyla, farklı bir jeneratörün kullanılması (PublicResXFileCodeGenerator yerine ResXFileCodeGenerator). Bu da VS 'Properties penceresinde düzenlenebilir olmalıdır .resx proje öğesi. - stakx
teşekkürler @stakx; önerildiği gibi örnekler ekledim - Luis Filipe
Bir işaretçi kendisine hiç işaret edebilir mi? Sqlite ve Python - fetchone () kullanarak bir sözlük döndürün? IOS 10.3.1 Chrome tarayıcı CORS hatası Bir yöntemi çağırmak, bir şey yapmak, zamanlayıcıyı sıfırlamak, tekrarlamak için Timer sınıfı nasıl kullanılır? Pencere tanıtıcısını, çalışan işlem adını vererek nasıl edinebilirim? PowerShell dize değişkeni içinde saklanan kaçış dizileri nasıl yok sayılır? Değişken değişkenleri yeniden düzenleme