Hata nasıl düzeltilir: Şema oluşturarak “Özellik / öğe için şema bilgileri bulunamadı”


148

VS2010 C # ile yazılmış bir windows form uygulaması var ve app.configdosyada aşağıdaki hataları olsun :

Message 4   Could not find schema information for the attribute 'name'
Message 8   Could not find schema information for the attribute 'name'
Message 12  Could not find schema information for the attribute 'name'
Message 5   Could not find schema information for the attribute 'serializeAs'
Message 15  Could not find schema information for the element 'CCP_Utility.Settings1'
Message 2   Could not find schema information for the element 'CCP_Utility.Properties.Settings'
Message 3   Could not find schema information for the element 'setting'
Message 1   Could not find schema information for the element 'userSettings'
Message 6   Could not find schema information for the element 'value'

Bu sorunu gidermek için kodda ne değiştirmem gerekiyor? İçinde ne düzenleyebilir nerede olabilir CCP_Utility.Settings1ve CCP_Utility.Properties.Settings?

İşte app.configkod:

<configuration>
<configSections>
    <sectionGroup name="userSettings" type="System.Configuration.UserSettingsGroup, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" >
        <section name="CCP_Utility.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" allowExeDefinition="MachineToLocalUser" requirePermission="false" />
        <section name="CCP_Utility.Settings1" type="System.Configuration.ClientSettingsSection, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" allowExeDefinition="MachineToLocalUser" requirePermission="false" />
    </sectionGroup>
  </configSections>
<userSettings>
  <CCP_Utility.Properties.Settings>
    <setting name="SourceDir" serializeAs="String">
      <value />
    </setting>
    <setting name="TargetDir" serializeAs="String">
      <value />
    </setting>
    <setting name="CorpID" serializeAs="String">
      <value />
    </setting>
  </CCP_Utility.Properties.Settings>
    <CCP_Utility.Settings1>
        <setting name="sourceDir" serializeAs="String">
            <value />
        </setting>
        <setting name="targetDir" serializeAs="String">
            <value />
        </setting>
    </CCP_Utility.Settings1>

   </userSettings>
</configuration>

Bu, şu sorunun bir kopyasına benziyor: stackoverflow.com/questions/179927/… . Cevabı @ user57433 kontrol edin.
rsbarro

@rsbarro, EntLib yapılandırma aracı ve DotNetConfig.xsd dosyası nerede bulunur?
Brian McCarthy

Üzgünüz, kullanıcının soruya iki cevap gönderdiğini fark etmedim. İkinci cevaba atıfta bulunuyordum. Bu cevap, doğru olsa da, biraz belirsizdi, bu yüzden aşağıda daha ayrıntılı bir cevap sağladı.
rsbarro

1
Teşekkürler, rsbarro! StingyJack'in orijinal sorusu, yalnızca herhangi bir özel yapılandırma bölümü değil, kurumsal kütüphane yapılandırma bölümlerini kullanan hatalarla sınırlıydı.
Lisa

Yanıtlar:


169

GÜNCELLEŞTİRME Eylül 2015
Bu cevap oyları almaya devam ediyor, bu yüzden bazı insanlar için yararlı olduğu için burada bırakacağım, ancak lütfen önce @reexmonkey ve @ Pressacco'daki diğer yanıtlara göz atın . Daha iyi sonuçlar verebilirler.

ORİJİNAL CEVAP
Buna bir şans verin:

  1. Visual Studio'da, app.config veya web.config dosyanızı açın.
  2. "XML" menüsüne gidin ve "Şema Oluştur" u seçin. Bu eylem, "app.xsd" veya "web.xsd" adlı yeni bir dosya oluşturmalıdır.
  3. Bu dosyayı diskinize kaydedin.
  4. App.config veya web.config dosyasına geri dönün ve düzenleme penceresinde sağ tıklayın ve özellikleri seçin. Oradan, yeni oluşturduğunuz xsd'ye Schemas özelliğinde başvurulduğundan emin olun. Orada yoksa ekleyin.

Bu mesajların kaybolmasına neden olmalıdır.

Web.xsd'mi web klasörümün köküne kaydettim (bunun için en iyi yer olmayabilir, ancak sadece gösterim amacıyla) ve Şemalarım özelliği şöyle görünüyor:

"C: \ Program Dosyaları (x86) \ Microsoft Visual Studio 10.0 \ xml \ Schemas \ DotNetConfig.xsd" "Web.xsd"


10
@rsbarro, Yanıtınız için teşekkürler! Neden 2 xsd dosyanız var? Şemayı oluşturdum ve kök dizine kaydettiğim sadece 1 dosya-app.xsd ile geldim. Hatalar kayboldu ama şimdi bir uyarı alıyorum: "Global element 'configuration' her zaman bildirildi". Bunu nasıl düzeltebileceğine dair bir fikrin var mı?
Brian McCarthy

2
Şemanızı seçmek veya başka bir şema eklemek için Özellikler iletişim kutusunu kullanmanız yeterlidir. App.config dosyasını görüntülerken, düzenleyici penceresine sağ tıklayın ve Özellikler'i seçin. Açılan Özellik Düzenleyicisi denetiminde Şemalar görmelisiniz. Ayrıca, Şemalarda "..." düğmesini tıklatırsanız, güzel bir GUI kullanarak yapılandırma dosyanız için kullanmak istediğiniz şemaları seçmenize olanak tanır.
rsbarro

3
Teşekkürler. Bu işe yaradı, ama bunun neden olduğunu anlamak için okuyabileceğim iyi bir yer var mı? Aniden DotNetOpenAuth için çok fazla içerik ekledikten sonra sıfırdan bir edmx dosyası oluşturduktan sonra benim web.config için bir şema oluşturmak için aniden gerekli gibi görünüyor. "Çok şey değiştirdiniz, bu yüzden bir şeyler kazanıldı" anlamında anlamlı. ancak web.config dosyasının neden kendiliğinden bir şemaya ihtiyacı olacağını bilmek faydalı olabilir.
13:49

6
Web.xsd dosyanızı oluştururken, yalnızca web / app.config bölümlerinize (kullanıcı bölümleri) eklediğiniz şemaları ekleyin. Zaten varsayılan şemada bulunan diğer tüm öğeleri veya diğer .xsd dosyalarını hariç tutun.
Pagotti

10
HAYIR HAYIR HAYIR!! Gerçek bir sorun bile olmadığı için bu "çözüm" değildir. @ Pressacco'nun cevabına bakın ve oy verin. Ayrıca reexmonkey'in yanıtı da işe yarıyor. Bu cevap neden bu kadar olumlu oy alıyor? 1. Sadece görmezden gelin! App.config veya web.config dosyasını kapatın ve iletileri görmeyeceğinizi bile derleyin. 2. Gerekli olmamakla birlikte, VS tarafından sağlanan XSD yolunu düzelten .config özelliklerini sağ tıklatarak çözün. (@ pressacco'nun cevabı) 3. Veya: DotNet sürümünü ve geri proje ayarlarını değiştirin. İki kez tekrarlayın. (reexmonkey'in cevabı). Paket güncellemelerinde sorunlara neden olabilir.
pashute

217

Sorunu çözmenin en hızlı, en kolay yolu:

  1. Solution Explorer'da proje simgesini sağ tıklayın ve "Özellikler" i seçin.
  2. "Uygulama" sekmesine gidin ve önceki bir .NET hedef çerçevesini seçin.
  3. Değişiklikleri Kaydet.
  4. "Uygulama" sekmesine gidin ve ilk .NET hedef çerçevesini seçin.
  5. Değişiklikleri kaydet => sorun çözüldü!

11
Tatlı! VS2012'de benim için çalıştı.
amo

4
Benim için de çalıştı (VS2013 Premium).
Remco

5
Bu ilk denemede işe yaramayabilir. VS 2013 Express'te çalışmadan önce iki kez yapmam gerekiyordu.
H2ONaCl

24
Visual Studio 2015'te benim için çalıştı. Birisi nedenini açıklayabilirse iyi olur.
Jonathan Wood

6
Çalışmadı, VS2015 güncelleme 2, .NET 4.5.2. Görünüşe göre mesajlar ortadan kalkıyor, ancak daha sonra XML dosyasını tekrar açarsanız geri gelirler.
Snoop

21

Bir XSD, EntLib 5 ile birlikte gelir ve Visual Studio şema dizinine yüklenir. Benim durumumda şu adreste bulunabilir:

C:\Program Files (x86)\Microsoft Visual Studio 10.0\Xml\Schemas\EnterpriseLibrary.Configuration.xsd

BAĞLAM

  • Visual Studio 2010
  • Kurumsal Kütüphane 5

UYARILARI KALDIRMAK İÇİN ADIMLAR

  1. Visual Studio projenizde app.config dosyasını açın
  2. XML Belge düzenleyicisine sağ tıklayın, "Özellikler" i seçin
  3. "EnterpriseLibrary.Configuration.xsd" dosyasına tam yol ekleyin

KENARA

Bu "Hata Listesi" "Mesajları" nın ("öğe için şema bilgileri bulunamadı") yalnızca app.config dosyasını açtığınızda görünür olduğunu tekrarlamaya değer. "Tüm Belgeleri Kapat" ve derlerseniz ... ileti bildirilmez.


1
Yolu tam olarak nitelendirmek istedim: mutlak bir yol kullanın. Örneğin C:\Program Files (x86)\Microsoft Visual Studio 10.0\Xml\Schemas\EnterpriseLibrary.Configuration.xsd. Windows işletim sisteminde, göreli bir yol. \ Ve .. \ karakterleri içerebilir.
Pressacco

1
Uyarıları kaldırmak için XML dosyasını kapatma hakkında bilgi için teşekkürler. ) Garip Davranış (
Machtyn

8
Visual Studio 2015'te EnterpriseLibrary.Configuration.xsd eksik mi?
Luke

3
Sadece XML dosyasını kapatmak sorunu benim için ortadan
kaldırdı

1
Teşekkürler @Taegost, bu benim için de yaptı. (Benim sorunum, VS2013 altındaki kod analizi özel sözlüğü, belirtilenden biraz farklıydı, ancak aynı belirtiler). Başka hiçbir şey denedim ve bu beni deli ediyordu. Sözlüğü editörde açtığımda, kod analizi aracının bu hatalar nedeniyle bile kullanılmadığı anlaşılıyor!
sn00gan

1

İlgili modülde bir sözdizimi hatası olduğunu ve derlemediğini buldum - derleyici bana bunu söylemedi. Sadece app.config şeyler ile ilgili hata verdi. VS2010. Sözdizimi hatasını düzelttikten sonra, her şey iyiydi.


1

Bu hata, projeniz güncel olmayan şemalara başvurduğunda oluşur. Yenilerini oluşturmak için Visual Studio'yu kullanın.

Visual Studio'da aşağıdakileri yapın:

  1. Aç sizin app.configveyaweb.config dosyanızı .
  2. Git XMLmenüsü seçin Create Schema.

Bu, app#.xsd(Windows uygulaması) veya web#.xsd(Web sitesi) dosyalarının oluşturulmasını tetikler .

  1. Yeni oluşturulan xsd dosyalarını projenin kök dizinine kaydedin.
    • Dosyanızı App.configveya web.configdosyanızı açın , metin düzenleyiciyi sağ tıklayın ve özellikleri seçin ve... Şemalar için değerin yanındaki düğmeyi .
    • Yeni oluşturulan xsd dosya (lar) ını AddDüğmesini .
    • Tıklayın OK

Özelliğe / eleman için bulunamadı şema bilgisi hata (lar) artık çözülmüş olmalıdır.


1

Basit: Visual Studio Rapor tasarımcısında
1. Raporu tasarım modunda
açın ve RDLC Dosyasından veri kümesini silin 2. Solution Explorer'ı açın ve gerçek (bozuk) XSD dosyasını silin
3. Veri kümesini RDLC dosyasına geri ekleyin.
4. Yukarıdaki prosedür yeni XSD dosyasını oluşturacaktır.
5. daha ayrıntılı aşağıda.

Visual Studio'da RDLC dosya raporunuzu Tasarım modunda açın. Raporu tıklayın ve ardından üst satırdaki menüden Görünüm'ü ve ardından Rapor Verileri'ni seçin. Veri Kümeleri'ni seçin ve ardından Sağ Tıklayın ve veri kümesini rapordan silin. Sonraki Visual Studio'nuzda açık değilse Çözüm Gezgini'ni açın. XSD dosyasını bulun (Rapordan yeni sildiğiniz veri kümesiyle aynı ad olmalıdır). Şimdi geri dönün ve rapor veri Veri Kümeleri'ne tekrar sağ tıklayın ve Veri Kümesi Ekle'yi seçin. Bu yeni bir XSD dosyası oluşturur ve veri kümesi özelliklerini rapora yazar. Şimdi hata mesajınız kaybolacak ve eksik veriler artık raporlarınızda görünecektir.


0

Bu bana (hiçbir yerden) geldiğinde yukarıdaki en üst cevaba dalmak üzereydim ve sonra projeyi kapatacağımı, Visual Studio'yu kapatıp her şeyi yeniden açacağımı düşündüm. Sorun çözüldü. VS bug?


Aşırı yükleme. VS içinde App.config dosya düzenleyicisini kapatmak yeterlidir. VS bug, belki.
Jirka Hanika

0

Bir projede "Bölüm adı" değiştirildiği VS 2012'de bunu yaptım ve projedeki "app.config" dosyasını silip "Çözüm Gezgini" nde projeyi sağ tıklayıp " Özellikler "i ve ardından" Ayarlar "ı seçin, ardından ayarlardan birinde değişiklik yapın, kaydedin ve yeniden oluşturun. Bu, doğru bilgileri içeren yeni bir app.config oluşturdu.


0

Benim durumumda kodumda belirsiz bir referans vardı. Visual Studio'yu yeniden başlattım ve hata mesajını görebildim. Bu sorunu çözdüğümde diğer hata kayboldu.


-1

Yazdıklarımın çoğu zaten Pressacco tarafından kapsanmıştır, ancak bu SpecFlow'a özgüdür.

<specFlow>Öğe için bu mesajı alıyordum ve bu nedenle bu cevaba bir specflow.xsddosya ekledim (izin vermek için bazı değişiklikler ile<plugins> öğeye ).

Daha sonra ben (Pressacco gibi), dosya arabelleği app.configve seçilen özelliklerin içine sağ tıkladım ve içine sonuna Schemasekledim "specflow.xsd". Şimdiden tamamı Schemasşu şekildedir:

"C:\Program Files (x86)\Microsoft Visual Studio 12.0\xml\Schemas\1033\DotNetConfig.xsd" "C:\Program Files (x86)\Microsoft Visual Studio 12.0\xml\Schemas\EntityFrameworkConfig_6_1_0.xsd" "C:\Program Files (x86)\Microsoft Visual Studio 12.0\xml\Schemas\RazorCustomSchema.xsd" "specflow.xsd"
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.