Visual Studio'yu .designer dosyalarını aspx / ascx dosyaları için yeniden oluşturmaya zorlarsınız?


395

Bazen sayfayı düzenlediğimde veya .designer dosyalarını kontrol ettiğimde sayfaya koyduğum yeni denetimlerle güncellenmeyi durdurur. Bunun ne olduğuna emin değilim, ancak Visual Studio'yu .designer dosyasını yeniden oluşturmaya zorlamanın herhangi bir yolu olup olmadığını merak ediyorum. Visual Studio 2008 kullanıyorum

EDIT: Üzgünüm ben zaten denedim kaydetti gerekirdi:

  • Tüm dosyaları kapatma ve yeniden açma ve Visual Studio
  • Sayfadaki bir runat = "sunucu" denetiminde değişiklik yapma
  • Sayfa yönergesini silme ve yeniden ekleme

57
2012'de Visual Studio'nun tasarımcı dosyalarını kaynak dosyalardan yeniden oluşturmak için hala bir bağlam menüsü öğesine sahip olmaması saçma mı? Bozuk bir DLL yeniden oluşturmak mümkün değil. Anlamıyorum .. Özellikle harici kaynak kontrolü ve harici editörlerle Visual Studio'yu sakat bırakıyorsunuz. Bana isen para israfı. Aslında kaynak dosya tasarımcılarını yenilemeye çalışıyorum. Ben rejenere düzenlemeyi başardı , ama bu belirsiz ... Augh !!! 1
bambams

3
@bamccaig, böyle garip bir "özellik" için bir kuruşum olsaydı, Bill Gates'den daha zengin olurdum. Bunun kötü olduğunu düşünüyorsanız, Outlook Express'in posta verilerini nerede sakladığına bakın. Varsayılan olarak gizli olan şifreli bir klasör adı altında kullanıcı klasörünün derinliklerine gömülür.
ATL_DEV

13
VS 2015 için herhangi bir çözüm var mı?
Anton

Diğer denemeler için ilgili stackoverflow.com/questions/6508252/… adresine bakın .
goodeye

2
Kalıcı bir düzeltme değildir, ancak .cs dosyasındaki denetim başvurularını geri yükler: 1. İlgili .aspx dosyasını açın; 2. <%@ PageYönerge satırının sonundaki tek ">" işaretini silin ; 3. Bir veya iki saniye bekleyin; 4. ">" i geri koyun. 5. .cs dosyasına geçin ve artık kontrol referans hatalarından arınmış olduğunu göreceksiniz. Bunu uzun zamandır yapıyorum, her zaman, her VS versiyonunda çalışıyor.
ingredient_15939

Yanıtlar:


368

.Aspx dosyasını açar ve tasarım görünümü ile html görünümü arasında geçiş yapar ve VS'den denetimleri kontrol etmesini ve eksik olanı tasarımcı dosyasına eklemesini ister.

VS2013-15'te Proje menüsü altında Web Uygulamasına Dönüştür komutu vardır . VS2013'ten önce bu seçenek sağ tıklama bağlam menüsünde (c / p) x dosyaları olarak mevcuttu. Bu yapıldığında, artık bir * .Designer.cs dosyanız olduğunu ve Tasarım HTML'sindeki denetimlerinizin denetiminiz için kullanılabilir olduğunu görmeniz gerekir.

Not: Hata ayıklama sırasında her şey yeniden derlenmediği için bu hata ayıklama modunda yapılmamalıdır.

Bazı insanlar da (.designer.cs dosyanızın yedek bir kopyasını oluşturarak ve .designer.cs dosyasını silerek) başarılı olduğunu bildirdi. Aynı ada sahip boş bir dosya yeniden oluşturun.

Bu yanıtta designer.cs dosyasını en iyi nasıl yeniden oluşturacağınıza dair ipuçları ekleyen birçok yorum var.


1
Bu sadece VS2008'in her örneğini (tamamen farklı çözümlere sahip olanlar bile) kapattıktan sonra benim için çalıştı
Kevin

11
Hata ayıklama modundan serbest bırakma moduna geçmenin benim için hile kazdığını buldum, Teşekkürler
Chris

5
Sadece aynı hatayı alıyorum ve hiçbir şey çalışmazsa, bu sayfadaki her şeyi denedim söylemek istedim. Çalıştırdım ">" runat = "server" olan bir div üzerinde yakın etiket eksik. VS-2008 çalıştırıyor.
Ber53rker

10
"Web Uygulamasına Dönüştür" ifadesinin görünmesi için önce Solution.x dosyasını Solution Explorer'da aspx dosyasını sağ tıklayıp silmeyi seçerek silmeniz gerekir. Bu VS 2010'da benim için çalıştı.
DeveloperDan

43
VS2013, Proje menüsü altında Web Uygulamasına Dönüştür'e sahiptir. Artık bağlam menüsünde değil.
Dennis Burton

95

İşe yarayan bir çözüm buldum, ama gerçekten sevmiyorum. Sonra .designer.cs dosyasını silmek ve aynı adda boş bir dosya yeniden oluşturmak zorunda kaldı. Geri döndüğümde ve aspx dosyasını tekrar kaydettiğimde, tasarımcı dosyası yeniden oluşturuldu.

Tehlikeli!


3
Bu benim için de işe yaradı. Uygun değil. Orijinal desginer dosyasının neden düzgün bir şekilde güncellenmediğini bilmiyorum.
Iain Holder

3
Bu benim için işe yaramadı. Şimdi boş bir dosya var ve arkasındaki tüm kod çalışmıyor !!!
Rebooting

7
Bu benim için çalıştı. Orijinali silmek, aynı ada sahip yeni bir designer.cs dosyası oluşturmak, yeni dosyayı kapatmak, kaydetmeyi zorlamak için .as (p / c) x dosyasını biraz değiştirmek, o zaman hepsi iyi oldu emin olun.
TJB

9
görünüm derleme hatası varsa, geri gelmeyecek. Genellikle bu yüzden ilk etapta yenilenmeyi durdurur. Görmek için görünüm derlemesini açmanız gerekir, bu da düz değildir.
DevelopingChris

1
Ayrıca boş dosyayı projeme dahil etmek zorunda kaldım.
JP Hellemons

78

Ben her zaman çalışan aşağıdaki yöntemi kullanın:

  • Aspx / ascx dosyasının düzenleyicisindeki ön kodun tamamını (html işaretleme vb.) Seçin .
  • Kesmek.
  • Kayıt etmek.
  • Yapıştırmak.
  • Kayıt etmek.

Recompile.


1
Bence tek bir kontrolü silmek ve tekrar eklemek aynı etkiye sahip.
chris

Bunu yaptım ve benim için çalıştı. Ancak, <name>.aspx.designer.vbişe almak için denilen boş bir dosya oluşturmak zorunda kaldım
Tahir Hassan

64

Geçenlerde aynı problemi yaşadığımı gördüm. Visual Studio 2010 tasarımcı dosyasını güncellemeyi reddediyordu.

Görüldüğü gibi VS, CodeBehind (DLL) yerine CodeFile (sayfaların tükenmesi) kullanan bir sayfa için tasarımcı dosyasını değiştirmez. VS'yi kaç kez kapatırsanız, projeyi yeniden yüklerseniz, kontrolleri yeniden oluşturduğunuzda veya bir dosyayı değiştirdiğinizde bu durum geçerlidir. Hiçbir şey VS'yi tasarımcıyı yenilemeye teşvik edemez. Sanki CodeFile sayfaları için tasarımcı dosyası oluşturmuyor ama orada olmasını gerektiriyor.

CodeBehind olarak değiştirdim ve sayfayı kaydettim. Tasarımcı dosyası hemen güncellendi. Sonra tekrar değiştirdim ve her şey hala altındı. VS 2008 / .NET 4.0'da bu davranış yeni gibi görünüyor çünkü VS 2008 varsayılan olarak bundan etkilenmedi.

Bu bölüm:

<%@ Page Language="vb" AutoEventWireup="false" CodeFile="YourPage.aspx.vb" Inherits="YourPageClass" %>

CodeFile'ı CodeBehind olarak değiştirin, kaydedin ve sonra geri alın.


Bu konuya geç. Yukarıda açıklanan cevapların hiçbiri, * .aspx.designer.cs dosyasında listelenen denetimleri zorlamaz. Ben bunu umuyordum, ama yine de kontroller * .aspx.designer.cs dosyasında ilan zorlamak değildir. VS 2010 Pro SP1 kullanıyorum. IDE / ChangePassword.aspx gibi hesap içinde oluşturduğu varsayılan dosyaları ile çalışmak için bu almaya çalışıyorum. Teşekkürler.
paparush

1
Benimki CodeFile olarak ayarlandı, CodeBehind olarak değiştirdim, kaydedildim, CodeFile'a geri döndüm, her şey Altın. Önceki düzeltme girişimleri benim için yapmadı. VS 2010 Pro
Dan

37

Başka bir olasılık daha vardır: .aspx dosyanızda Visual Studio'nun tasarımcıyı yeniden oluşturmasına izin vermeyen bir hata olabilir.

Tasarım Görünümü'ne geçerseniz, denetimin oluşturulamayacağı gösterilir. Denetimi düzeltmek (benim durumumda özelliklerde ekstra bir teklifti) ve yeniden derlemek tasarımcıyı yeniden oluşturmalıdır.


Ben aynı sorunu vardı, kullanıcı kontrol hataları nedeniyle kullanıcı kontrolünü kullanan sayfalarda ilgisiz hatalar vardı kullanıcı kontrolü hataları vardı.
Ronen Festinger

1
Aynı sebep. Bir asp düğmesi için visible = "false" eklenen desteklenmeyen bir özniteliğim vardı. Onu kaldırdım ve tasarımcı kodu yeniden oluşturuldu.
chingNotCHing

21

Buradaki çözümlerin çoğu, Visual Studio 2013 ve muhtemelen 2012'yi çalıştırıyorsanız işe yaramaz. Microsoft, muhtemelen IDE snappier yapmak için bazı optimizasyonlar başlattı, dolayısıyla kod üreticisini tetikleyen vaka sayısını azalttı. Eskiden işe yarayan aşağıdaki senaryolar artık geçerli değil:

  1. Aspx veya ascx dosyasını silin - Artık bu durumu kontrol etmiyor
  2. Tüm içeriği kesin ve aspx veya ascx dosyasına yeniden gönderin - Artık çalışmıyor, referanslarda değişiklik yok
  3. Web Uygulamasına Dönüştür - Seçenek artık mevcut değil
  4. Aspx / ascx dosyasındaki içeriği keyfi olarak değiştirme - Artık çalışmıyor (bkz. 2).

Çözüm şaşırtıcı derecede basit, ancak biraz hantal. Kod oluşturucuyu tetiklemek için designer.aspx.cs dosyasının oluşturulmasını gerektiren bir şeyi değiştirin. CSS stili veya kodu ekleme gibi kodu etkilemeyen içeriği değiştirmek, kod oluşturucuyu tetiklemez. Referans verilen bir kontrolü değiştirmeniz gerekir. Bunu nasıl yapacağınız aşağıda açıklanmıştır:

Ascx veya aspx'te kontrolün kimliğini değiştirin

<asp:HyperLink ID="MyLink" runat="server" NavigateUrl="~/Default.aspx" Text="Home" />

için

<asp:HyperLink ID="theLINK" runat="server" NavigateUrl="~/Default.aspx" CssClass="tab" Text="Home" />

Ascx.cs veya aspx.cs adresine gidin ve "MyLink" ile ilgili tüm referansları "theLINK" olarak yeniden adlandırdığınızdan emin olun. Tasarruf edin ve inşa edin ve gitmek için iyi olmalısınız.


Visual Studio'nun yeni sürümündeki değişiklikler hakkında çok iyi bir nokta. Yukarıdaki gibi kimliklerle uğraşmak yerine benim için işe yarayan şey, tasarımcı dosyasını silmek, ardından <asp: PlaceHolder ID = "Foo" runat = "sunucu /> gibi yepyeni, iyi huylu bir kontrol eklemek ve ardından tetiklemek için kaydetmekti . rejenerasyon Sonra kaldırmak için unutmak bile, hiçbir şey etkilenir.
Ürdün Rieger

8
3. Uygun bir dosya seçilirse, 'PROJE' menüsünde 'Web Uygulamasına Dönüştür' seçeneği sağlanır.
WynandB

2
Hmm. Maalesef, zaten bir web uygulamasıysa bu seçenek kullanılamaz.
ATL_DEV

Hızlı bir değişiklik, Inherits = özelliğinin ad alanı kısmını düzenlemektir. Bu, .designer dosyasındaki ad alanını düzenlemeli ve içindeki tüm içeriği yeniden oluşturmalıdır. Bunu sadece VS2013.3 ile denedim.
David Russell

Merhaba, normalde sağladığınız şekilde deniyorum ama sorun başka bir kullanıcı sadece yönetici yapabiliyorken g.cs dosyası oluşturamıyor. TFS kullanıyoruz, VS'de birkaç geliştirici kullanıcı kimliği kullanarak, g.cs oluşturabiliyoruz. Sunucuda TFS ve SP'de g.cs oluşturmak için gereken haklar nelerdir?
nirav

14

bildiğim tek yol tasarımcı dosyasını silmek ve web uygulamasına dönüştürmektir. Ancak bunu yaptığınızda, neden ilk başta otomatik olarak yeniden oluşturulmadığına dair genellikle hata ile ortaya çıkar, genellikle sayfanın başında bildirilmeyen bir kontrol ref.


Üzgünüm işe yaramadı, kullanmaya başladığımdan beri VS 2008'de çalıştı. Sayfanızda bir sözdizimi hatası var mı? Çalışmasını bitirmek için neyi düzeltmeniz gerektiğini söyleyen bir iletişim kutusu almalısınız.
DevelopingChris

Bu benim için çalıştı. Arkada kod sınıfı, büyük / int Idküçük harfe duyarlı olduğu için C # 'da iyi derlenmiş bir özelliğe sahipti . Ama ID="ControlName"aspx sayfasında yapmaya çalışıyordu Id = "ControlName". Convert to Web Appgibi bir şey söyledi ControlName cannot be converted to Int32.
Nelson Rothermel

9

Web Uygulamasına Dönüştür benim için çalışmadı.

Designer.cs dosyasını silmek ve boş bir designer.cs dosyasını yapıştırmak da işe yaramadı.

Ama evet bu işe yaradı:

  1. Tümünü seç (Default.aspx)
  2. Kesmek
  3. Default.aspx'i Kaydet
  4. Yapıştırmak
  5. Default.aspx'i Kaydet

Bitti. Yeni designer.cs oluşturuldu. :)


Bunun VS2013'te çalıştığını doğrulayabilirim, sadece yaptım ve sorunlarımı çözdü.
ToastyMallows

Sen. Sahip olmak. var. için. olmak. dalga geçmek. ben mi. Bu benim için çalıştı VS2015, ne zaman seçilen cevap gibi dönüştürmek vermedi.
GraehamF

6

Kopyalama / yapıştırma işleminin benim için bu davranışa neden olduğunu sık sık gördüm . Çoğu durumda bir sunucu denetiminin kimliğini düzenleyerek çözebilirsiniz (sadece bir karakter ekleyin, sonra silin).

Ayrıca Repeaters gibi şeylerin içindeki denetimin tasarımcı dosyasında görünmediğini unutmayın.

Ve evet, yukarıda listelenen dosya silme sihrini yapmanız gereken durumlar vardır - ancak ad değiştirme çözümü çoğu zaman işe yarayacaktır.


2
Bu birçok kez sahip olduğum bir hata. HTML'yi bir sayfadan diğerine kopyalar ve runat = "server" içeren denetimlere sahipseniz, çakışmaları önlemek için denetimler yeniden adlandırılır. Ancak, "html comment" etiketleri <! - whaterver -> içine yapıştırırsanız, kontrol kimlikleri değiştirilmez ve aynı kimliğe sahip iki kontrol olduğu için herhangi bir çakışma tasarımcı dosyasının yeniden oluşturulmasını durdurur. Bunun nedeni, html "comments" etiketlerinin içindeki denetimlerin de oluşturulmasıdır. ;)
tomasofen

5

Deneyimlerim, bu makalede olduğu gibi, yukarıda belirtildiği gibi yapmak istiyorsanız .

Biçimlendirme dosyanız (aspx / ascx), CodeBehind = "MyPage.aspx.cs" özniteliğini içermelidir, aksi takdirde çalışmaz. Burada bu konuda blog yazdım .


Bu özelliği ekledikten sonra kaydedildi; hiçbir şey değil. Daha sonra Devralmalar kaldırıldı, kaydedildi, geri yüklendi ve tasarımcı kod dosyası güncellendi! Bu rahatsız edici özellik beni her zaman yakalar :-(
GlennG

her iki bağlantı da öldü = (
Maslow

5

Ben herhangi bir kod değiştirmeden veya "Web Uygulama Dönüştür" gibi komutları çalıştırmadan bu sorunu çözmek için bir yol buldum - ve bu da basit!

Bulduğum şey, Visual Studio'yu yeniden başlatmak genellikle sorunu çözdü, ancak bazen çözmedi. Bu gibi durumlarda, Visual Studio'yu kapatıp yeniden açmadan önce web projesi için "obj" dizinindeki tüm içeriği silerseniz , her zaman benim için çalıştı.

(yeniden başlatıldığında, bir boşluk ekleyip tekrar kaldırın ve ardından tasarımcı dosyasının düzgün bir şekilde yeniden oluşturulması için save tuşuna basın)


Eski bir uygulama ile bu sorunu yaşıyorum. Bunu işaret ettiğiniz için teşekkür etmek istiyorum. . Ben tasarımcı benim için sürekli çöktüğü şey ama düzeltme hataları yeni bir çözüm oluşturabilir veya yapmak, web uygulaması" dönüştürmek yetkim yok ama bunun şimdiye kadar yardımcı olmuştur..
Jamie Taylor

4

(Aşağıdakiler VS2005 deneyiminden gelir.)

Hata ayıklama sırasında bir ASPX sayfasını düzenlerseniz, codebehind yeni sınıflarla güncellenmez. Bu nedenle, hata ayıklamayı durdurmalı, ASPX sayfasını önemsiz bir şekilde düzenlemelisiniz (düğme veya benzeri bir şey eklemek gibi), ardından Tasarım Görünümü'nü tıklatıp düğmeyi silmelisiniz. Ardından, tasarımcı dosyalarınız güncellenmelidir.

VS2008 ile farklı bir sorun yaşıyorsanız, yardım edemem.


VS.Net 2010 ile bu koştu ... tam olarak bunu yapmak zorunda ... İpucu @EndangeredMassa ipucu için ... Ben eskiden VS.Net 2002/2003 gün içinde bu geçmesi gerekir ... Keşke ben bunu biliyordu;)
Richard B

4

Tasarım görünümündeyken, ekrana sağ tıklayın ve yenile düğmesine basın.


3

İşe yarayan bir başka şey de -

  1. Manuel olarak silin ve ardından Dosya sisteminde bir tasarımcı dosyası oluşturun.
  2. Proje dosyasını düzenleyin.
  3. Tasarımcıyı dahil etmek için kod ekleyin
    Örn:<Compile Include="<Path>\FileName.ascx.designer.cs"> <DependentUpon>FileName.ascx</DependentUpon> </Compile>
  4. Projeyi Yeniden Yükle
  5. Tasarım / görünüm modunda (c / p) x dosyası olarak açın ve kaydedin.
  6. Tasarımcı dosyasını kontrol edin. Kod orada olacak.

3

VS2013 veya üstünü kullanıyorsanız, "CodeFile" değil, "CodeBehind" özniteliğiyle belirtilen kodun olduğundan emin olun, ardından aşağıdaki adımları uygulayın

<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="yourControl.ascx.cs" Inherits="yourControl.yourControl" %>
  • boş tasarımcı sayfası oluşturun (veya zaten "yourControl.ascx.designer.cs" varsa temizleyin)
  • ascx (veya aspx) içindeki tüm kodu kopyalayın, silin ve kaydedin. tekrar yapıştırın, sonra kaydedin.
  • tasarımcı dosyası şimdi doldurulmalıdır.

2
  • Tasarımcı dosyasında tümünü seçin ve dosyadaki her şeyi silin, boş bırakın ve ardından kaydedin
  • ASPX / ASCX dosyasında tümünü seçin ve her şeyi kesin ve yeniden yapıştırın
  • Tasarımcı dosyası kodu yeniden oluşturmuş olmalıdır

1
Bu benim için çalıştı! Ayrıca her şeyi kestikten sonra .aspx dosyasını da kaydettim. Geri yapıştırıldı, kaydedildi ve (önceden boş) tasarımcı dosyam tamamen dolduruldu.
DaveD

2

İşte wat i deneyimli, Çözüm Gezgini'nde web sitesi klasörünü sağ tıklayın, bir tasarımcı dosyasının oluşturduğu tüm aspx dosyası için Web uygulamasına dönüştür'ü seçin.

Sameer


2

Sadece burada uzun cevap listesine eklemek için - Ben sadece bu sorunu VS2010 (SP1) bir .aspx dosyası ile karşılaştım. (Geçmişte çalıştı) standart ASP denetimleri ekleme ve kaldırma denedim ama sonunda, tasarımcı dosyayı yeniden oluşturmak için zorlamak için mevcut bir denetimden (ve kaydetme) runat = sunucu satırlarından birini kaldırmak zorunda kaldı .


2

Aynı sorunla yıllardır Visual Studio 2008'de çalışıyorum. StackOverflow ve düzinelerce blog üzerindeki her "çözümü" denedim. Ve bazen çalışıyorlar, bazen de çalışmıyorlar, tıpkı hepinizin karşılaştığından eminim gibi. Ve görünüşe göre VS2010 ve VS2012'de hala bir sorun.

Son olarak, birkaç ay önce, yeterli olduğuna karar verdim ve birkaç hafta içinde .designer dosyaları üreten "Redesigner" adlı bir araç geliştirdim. Kaynak kodu SourceForge'da mevcut olan BSD lisansı altında açık kaynak kodludur - kullanımı ücretsiz, çalması ücretsiz, memnun kaldığınız her şeyi yapmak ücretsizdir. Ve Visual Studio'nun bu kadar sık ​​yapamadığını yapar, bu da .designer dosyalarını hızlı ve güvenilir bir şekilde oluşturur.

Bu, .aspx ve .ascx dosyalarını ayrıştıran, gerekli tüm yansıma sihirini gerçekleştiren ve doğru .designer dosyalarını dağıtan bağımsız bir komut satırı aracıdır. Hepimizin çok iyi kırıldığını bildiğimiz mevcut koda güvenmemekten kaçınmak için tüm ayrıştırma ve yansımanın kendisini yapar. .NET 3.5'e karşı C # ile yazılmıştır, ancak tip bildirimleri dışında herhangi bir şey için System.Web'i bile kullanmaktan kaçınır ve Visual Studio'yu kullanmaz veya güvenmez .

Yeniden tasarımcı yeni .designer dosyaları oluşturabilir; ve bir --verbose seçeneği sunar, böylece işler ters gittiğinde, "System.Exception türü istisnası atıldı" türünden çok daha iyi hata iletileri alırsınız. Ve mevcut .designer dosyalarınızın ne zaman bozulduğunu söylemek için kullanılabilecek bir --everify seçeneği var - eksik kontroller, kötü özellik bildirimleri, Visual Studio tarafından okunamaz veya başka bir şekilde sadece düzensiz.

İşyerinde geçen ayın daha iyi kısmı için sıkışmalardan kurtulmak için kullanıyoruz ve Redesigner hala bir beta olsa da, varlığını kamuoyu ile paylaşmaya değecek kadar ilerliyor. Yakında bunun için bir Visual Studio eklentisi oluşturmayı planlıyorum, böylece tasarımcı dosyalarını her zaman istediğiniz gibi doğrulamak veya yeniden oluşturmak için sağ tıklayabilirsiniz. Ancak bu arada, komut satırı kullanımı oldukça kolaydır ve size birçok baş ağrısından tasarruf sağlayacaktır.

Her neyse, şimdi Redesigner'ın bir kopyasını indirin ve saçınızı çekmeyi bırakın . Her zaman buna ihtiyacınız olmayacak, ancak bunu yaptığınızda sahip olduğunuza sevineceksiniz!

https://sourceforge.net/projects/redesigner/


basit bir düzeltme için aşırıya kaçmış gibi görünüyor
Chris McGrath

1
@ChrisMcGrath Belki aşırıya kaçabilir, ama bu aracı yönlendiren acıyı hissettim. Ben inşa etmek için zaman koymak onun özveri hayranım :)
Jordan Rieger

2

TL; DR;
Düzen Inheritsöznitelik ASPX sayfası en@Page direktifi ve Kaydet çarptı. Tasarımcı dosyanız yeniden oluşturulmalıdır.

= <Ad Inheritsalanı>. < CodeBehindSınıf_adı > ve = <sınıf_adı> .aspx.cs öğelerinden emin olun .


Bunu VS 2010 ve TFS kullanarak bir Sharepoint 2010 projesinde yapmaya çalışıyordum ve yukarıdaki çözümlerin hiçbiri benim için çalışmadı. Öncelikle, VS 2010'da TFS kullanırken .ASPX dosyasının sağ tıklama menüsünde "Web Uygulamasına Dönüştür" seçeneği eksiktir.

Bu cevap sonunda yardımcı oldu . Sınıfım şöyle görünüyordu:

namespace MyProjects.Finance.Pages
{
    public partial class FinanceSubmission : WebPartPage
    {
        protected void Page_Load(object sender, EventArgs e)
        {
        }

        // more code
    }
}

Ve @Pagedirektifim (netlik için burada satır sonları):

<%@ Page Language="C#" AutoEventWireup="true" 
    CodeBehind="FinanceSubmission.aspx.cs"
    Inherits="MyProjects.Finance.Pages.FinanceSubmission"
    MasterPageFile="~masterurl/default.master" %>

İlk Inheritsolarak MyProjects.Finance.Pages olarak değiştirdim, Kaydet'e basın, sonra tekrar MyProjects.Finance.Pages.FinanceSubmission olarak değiştirdim. tekrar ve tekrar Kaydet'e basın. Ve wallah! Tasarımcı sayfası yeniden oluşturuldu!

Umarım bu TFS kullanan birine yardımcı olur!


2

Visual Studio içinde:

1) aspx.designer.cs dosyanızı kaldırın

2) aspx dosyanızı sağ tıklayın ve "Web Uygulamasına Dönüştür" ü seçin. Bu, aspx.designer.cs dosyasını güncel ve güncel olarak eklemelidir.

Bir hata mesajı alırsanız:

"Tasarımcı dosyası oluşturulamadı: Yöntem veya işlem uygulanmadı."

Visual Studio'yu kapatın ve sonra projenizi yeniden açın ve ikinci adım

Visual Studio'da aspx.designer.cs nasıl oluşturulur?


2
Bir aspx dosyasının içerik menüsünde "Web Uygulamasına Dönüştür" yoktur. En azından VS Professional 2015'te değil.
Chris Walsh

2
  1. Adım 1 : Tüm aspx kodunuzu seçin, [CTRL + X] kodunu kesin ve Kaydet.

  2. Adım 2 : Aynı kodu tekrar aynı sayfaya yapıştırın ve tekrar kaydedin

Şimdi .desinger sayfanız .aspx sayfasındaki tüm denetimlerle yenilenecektir.


1

Designer.cs dosyasını silin ve .aspx dosyasına sağ tıklayın ve "Web Uygulamasına Dönüştür" ü seçin. Bir etiket iyi biçimlendirilmemiş gibi kontrol bildirimlerinizle ilgili bir sorun varsa, bir hata iletisi alırsınız ve visual studio tasarımcı dosyanızı başarıyla yeniden oluşturmadan önce hatalı biçimlendirilmiş etiketi düzeltmeniz gerekir.

Benim durumumda, bu noktada, ben bir runat = "sunucu" özniteliği olan bir form etiketi içinde olmayan bir düğme denetimi bildirmişti sorun olduğunu keşfetti.


1

Bu IDE'de bir hatadır; VS 2003'ten beri gördüm. Bu basit bir çözüm.

Dosyalarınızı kaydedin. IDE'den tamamen çıkın (işlemin durduğundan emin olun, görev mgr.)

Çözümü yeniden açın, biçimlendirmeyi kirleyin, kaydedin. Sabit.



1

.Ascx dosyasında bildirildiğinde yeni denetimlerimin tasarımcı dosyasında oluşturmama sorunu vardı. Sorun ben de arkasındaki kodda onları ilan oldu. Bu yüzden arkadaki koddaki bildirimi silmek sorunumu çözdü.


1

Benim gibiyseniz ve daha yeni bir projeye eski .ASPX dosyaları eklerseniz. Muhtemelen sayfada kullanılan bazı kontrolleri unutacaksınız.

Eğer öyleyse, ilk şey, yüklediğiniz birden fazla dosya varsa; Önce birer birer düzeltin.

Derlediğinizde, oluşturulan hataları düzeltin. Muhtemelen tüm dosyalarda aynı hatalar olacaktır.

Sonra, Tasarımcı dosyalarınız varsa, eklenen tasarımcı dosyalarının tümünü silin. Sonra, derlerken tasarımcı dosyaları dışında başka hatalar olmadığından emin olun.

Son olarak web projenize sağ tıklayın ve Web Uygulamasına Dönüştür'e tıklayın. Bu, ihtiyacınız olan tasarımcı dosyalarını ekleyecektir.

Bunlar sorunları çözmek için en iyi adımlardır.


1

Kimsenin bahsetmediği bir şey sayfayı ziyaret etmektir . Tasarımcı dosyamın yeniden oluşturulmasını durdurdum çünkü mevcut olmayan bir kullanıcı denetimi ekledim (çeşitli nedenlerle) ve burada önerilenlerin hiçbiri işe yaramadı. Her ne sebeple olursa olsun, Visual Studio'da herhangi bir hata alamadım - yanı sıra, müşteri tarafı kontrollerimin var olmadığı gerçeğinden şikayet eden kişinin yanı sıra, rejenere edilmedikleri için elbette.

ASP.Net'in hatayı bana bildirmesi gerçekten sayfayı ziyaret etti.


1

Bu durum, ad alanını güncellerseniz ve tasarımcı dosyasındaki ad alanını güncelleştirmezseniz de olabilir. Düzeltme: Tasarımcı dosyasındaki ad alanını da güncelleyin.


1

Benim için çalışılan çözüm:

Sayfayı kopyaladım ve aynı bölüme yapıştırdım, ardından ilk sayfayı (ne olursa olsun) yeniden adlandırdım ve kopyalanan sayfayı orijinal sayfa olarak yeniden adlandırdım. Artık kontrollere erişilebilir.

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.