2011-03-21 26 views
16

Visual Studio 2010 64bit'te formlarımı tasarlayamıyorum.x64'deki Visual Studio tasarımcısı çalışmıyor

Warning 18 
The designer could not be shown for this file because none of the classes within it can be designed. The designer inspected the following classes in the file: 
MainForm --- The base class 'Blah' could not be loaded. Ensure the assembly has been referenced and that all projects have been built. 

yalnız şunu tasarımcı iyi çalışıyor x86 içinde ... x64 için derleme yaparken ile gerçekleşir:
Ben bu uyarıyı (yanılma) alıyorum.

Sadece x64 üzerinde çalışacak projeye İHTİYACIM VARSA, projenin bir çok bileşeni x64'te derlenmiş ve formlar x86'da ise çalışmaz.

Bunu başka biriyle karşılaştı ve bir çözüm buldu mu?

+0

çözümü yeniden deneyin. – SLaks

+0

Eğer bu aptal bir soru ise özür dilerim, ancak Visual Studio’yu 64-bit O/S’de mi çalıştırıyorsunuz? Cevabın "evet" olduğunu varsayarsak, 64-bit yetenekli olmayan herhangi bir bağımlılığınız var mı (3. taraf kütüphaneleri)? Veya, belki bir yerel dll sarma (bu durumda, yerel dll 64-bit bir sürümü gerekir) bir denetim – JMarsch

+0

Bu bir 64bit işletim sistemi, 64-bit olan bağımlılıklar vardır. Tüm bileşenler 64 bit (doğrulanmış). Bunu düşünebildiğim tek şey 64-bit değil belki de VS2010 için bir şey. @SLaks - funny :) ... –

cevap

23

Sorununuzu, bir kullanıcı denetimi olan bir WPF uygulaması oluşturarak yeniden yapabilirim (kullanıcı denetimini wpf uygulamasına koyup x64 oluştur). Neler

İşte için benim tahminim:
Visual Studio 32 bit uygulama, WPF tasarımcısı (kullanıcı denetimleri kullandığınızda, neredeydin zaman tüm bu davranışı görmek başvurulan derlemeler yüklemek zorunda olduğunu tasarımcıyı güncellemek için yeniden inşa etmek zorundayız). Windows 32-bit ve 64-bit arasında bir "thunk" desteklemiyor - bir 32-bit uygulaması ya da 64-bit bir uygulama, dönem, hiç bir paylaşım olmanız gerekir.

Hte WPF tasarımcısı 32 bit olduğu için, montajların 32 bit olması gerekir.

İşte olası bir çözüm: Uygulamanızı "Herhangi Bir İşlemci" seçeneği ile tasarlayın. Bu, kodunuzun JIT'e 32 bit platformlarda 32 bit ve 64 bit platformlarda 64 bit olmasına neden olur.

  • Tasarımcılar "herhangi bir cpu" içinde çalışacak, çünkü derlemeler 32-bit'e takılıyor. Eğer 64 bit özellikle hata ayıklamak gerektiğinde
  • ,
+1

Bu bir WPF hatası değil. –

+0

@Hans Passant: Katılıyorum, bu VS'deki WPF Designer ve tasarım gereğidir. Yeniden basmak çok kolay - bir çekim yapın: VS'de yeni bir WPF projesi başlatın (şimdilik tüm ayarları tek başına bırakın). Yeni bir UserControl ekle (sadece boş bırakabilirsiniz). Kullanıcı kontrolünü ana formunuza ekleyin. Build (şimdiye kadarki en iyisi). Şimdi bir x64 yapı profili oluşturun ve çözümü (patlamayı) yeniden oluşturun. X86'ya geri dönün ve yeniden (iyice) yıkayın, tekrar çalkalayın, yıkayın. – JMarsch

+3

Değeri için, Winform tasarımcısı ile de aynı adımları kullanarak yeniden sunabilirim. Tasarımcının 32 bitlik bir uygulama olması ve bunu yüklemek için 64-bitlik bir montajdan (kullanıcı denetimi bizim derlenmiş çıktımızda olduğu için) teslim etmemizden kaynaklanıyor. "Herhangi bir CPU" en iyi cevaptır. – JMarsch

6

Bu (eğer geri dönmek "32 bit ya 'Herhangi cpu' form tasarımı yapmak gerekir bilerek) 64-bit'e yapı yapılandırma geçiş . Her iki VS2008 ve VS2010 bir hata İşte

hata raporu var.

http://connect.microsoft.com/VisualStudio/feedback/details/646328/the-designer-could-not-be-shown-with-platform-x64

Bunun için hiçbir düzeltme henüz var gibi görünüyor

+2

Ayrıca yine bunu düzeltmek olacaktır sanmıyorum VS 2013 – wingyip

+3

yılında Ve VS 2015 :( – bor

+5

yılında Ve VS 2017 :( – Kuba

3

Microsoft için önerilen bir çözüm AnyCPU veya x 86 (gerçek projesi olmalıdır halinde 64) kullanılarak derlenmiş ayrı montaj, temel sınıfları taşımaktır.

Ne yazık ki bu tüm temel sınıfları geçerlidir: FormB: senin mirasın FormC ise FormA ardından hem FormAve tasarımcı içinde FormC düzenlemek istiyorsanızFormB, bir (dış) 32 bit montaj olmalıdır .

Elbette, bu ayrıca UserControls için de geçerlidir! Bizim takımın 64bit taşınmaya karar verdi önce bu bilseydim keşke - bir uyarı, derleme seçenekleri gerçekten güzel olurdu Microsoft'a değiştirirken ...