Às vezes, quando estou editando uma página ou controlando, os arquivos .designer param de ser atualizados com os novos controles que estou colocando na página. Não sei ao certo o que está causando isso, mas estou pensando se há alguma maneira de forçar o Visual Studio a gerar novamente o arquivo .designer. Estou usando o Visual Studio 2008
EDIT: Desculpe, eu deveria ter notado que eu já tentei:
- Fechando e reabrindo todos os arquivos e Visual Studio
- Fazendo uma alteração em um controle runat = "server" na página
- Excluir e adicionar novamente a diretiva de página
asp.net
visual-studio
visual-studio-2008
Glenn Slaven
fonte
fonte
<%@ Page
linha de diretiva; 3. Aguarde um ou dois segundos; 4. Coloque o ">" de volta. 5. Passe para o arquivo .cs e verá que agora está livre de erros de referência de controle. Eu venho fazendo isso há séculos agora, funciona sempre, em todas as versões do VS.Respostas:
Se você abrir o arquivo .aspx e alternar entre a exibição de design e a exibição de html e vice-versa, o VS solicitará que verifique os controles e adicione os que estiverem faltando no arquivo de designer.
No VS2013-15, há um comando Converter em aplicativo da Web no menu Projeto . Antes do VS2013, esta opção estava disponível no menu de contexto do botão direito do mouse para arquivos (c / p) x. Quando isso for feito, você verá que agora você tem um arquivo * .Designer.cs disponível e seus controles no HTML de Design estarão disponíveis para seu controle.
PS: Isso não deve ser feito no modo de depuração, pois nem tudo é "recompilado" durante a depuração.
Algumas pessoas também relataram êxito (fazendo uma cópia de backup do seu arquivo .designer.cs e, em seguida) excluindo o arquivo .designer.cs. Recrie um arquivo vazio com o mesmo nome.
Existem muitos comentários para esta resposta que adicionam dicas sobre a melhor maneira de recriar o arquivo designer.cs.
fonte
Bem, eu encontrei uma solução que funciona, embora eu realmente não goste. Eu tive que excluir o arquivo .designer.cs e recriar um arquivo vazio com o mesmo nome. Quando voltei e salvei o arquivo aspx novamente, o arquivo do designer foi gerado novamente.
Desonesto!
fonte
Eu uso o seguinte método que funciona sempre:
Recompile.
fonte
<name>.aspx.designer.vb
para obtê-lo para o trabalhoVi recentemente que estava tendo o mesmo problema. O Visual Studio 2010 estava se recusando a atualizar o arquivo de designer.
Como se vê, o VS não modifica o arquivo de designer para uma página que usa CodeFile (executado sem páginas) em vez de CodeBehind (DLL). Isso é verdade, não importa quantas vezes você feche o VS, recarregue o projeto, recrie o (s) controle (s) ou modifique um arquivo. Nada levaria o VS a regenerar o designer. É como se ele não criasse o arquivo de designer para as páginas do CodeFile, mas exigisse que ele estivesse lá.
Mudei para CodeBehind e salvei a página. O arquivo de designer foi atualizado imediatamente. Então eu mudei de volta e tudo ainda estava dourado. Esse comportamento parece ser novo no VS 2010 / .NET 4.0, pois o VS 2008 por padrão não sofreu com isso.
É esta parte:
Altere CodeFile para CodeBehind, salve e, em seguida, reverta.
fonte
Há outra possibilidade: você pode ter um erro no arquivo .aspx que não permite que o Visual Studio regenere o designer.
Se você alternar para o Design View, ele mostrará o controle como incapaz de ser renderizado. A correção do controle (no meu caso, era uma citação extra nas propriedades) e a recompilação deve gerar novamente o designer.
fonte
A maioria das soluções aqui não funciona se você estiver executando o Visual Studio 2013 e possivelmente 2012. A Microsoft provavelmente introduziu algumas otimizações para tornar o IDE mais rápido, consequentemente, reduziu o número de casos que acionam o gerador de código. Os seguintes cenários que costumavam funcionar não funcionam mais:
A solução é surpreendentemente simples, mas é um pouco complicada. Para acionar o gerador de código, altere algo que exija que o designer.aspx.cs seja gerado. Alterar conteúdo que não afeta o código, como um estilo CSS ou adicionar texto, não acionará o gerador de código. Você deve alterar um controle referenciado. Veja como fazê-lo:
No ascx ou aspx, altere o ID do controle
para
Vá para ascx.cs ou aspx.cs e renomeie todas as referências para "MyLink" para "theLINK" também. Salve e construa, e você deve estar pronto.
fonte
a única maneira que eu sei é excluir o arquivo de designer e converter para um aplicativo da web. No entanto, quando você faz isso, ele geralmente aparece com o erro, por que não se regenerou automaticamente em primeiro lugar, geralmente é uma referência de controle que não é declarada no cabeçalho da página.
fonte
int Id
propriedade que compilava perfeitamente em C #, pois diferencia maiúsculas de minúsculas. MasID="ControlName"
na página aspx estava tentando fazerId = "ControlName"
.Convert to Web App
disse algo parecidoControlName cannot be converted to Int32
.Converter em aplicativo Web não funcionou para mim.
Excluir designer.cs e colar um designer.cs em branco também não funcionou.
Mas sim, isso funcionou:
Feito. Novo designer.cs gerado. :)
fonte
Eu sempre achei que copiar / colar causava esse comportamento para mim. A maioria dos casos pode ser resolvida editando o ID de um controle de servidor (basta adicionar um caractere e excluí-lo).
Lembre-se também de que o controle interno de repetidores não é visível no arquivo do designer.
E sim, há casos em que você precisa executar a mágica de excluir o arquivo listada acima - mas a solução de alteração de nome funcionará na maioria das vezes.
fonte
Minha experiência é que, se você quiser fazer o mesmo neste artigo, como mencionado acima.
Seu arquivo de marcação (aspx / ascx) deve incluir o atributo CodeBehind = "MyPage.aspx.cs", caso contrário não funcionará. Eu escrevi sobre isso aqui .
fonte
Encontrei uma maneira de resolver esse problema sem alterar nenhum código ou executar comandos como "Converter em aplicativo Web" - e também é simples!
O que descobri foi que reiniciar o Visual Studio geralmente resolve o problema, mas às vezes não. Nesses casos, se você fechar o Visual Studio e excluir todo o conteúdo no diretório "obj" do projeto da Web antes de abri-lo novamente, ele sempre funcionou para mim.
(quando reiniciado, basta adicionar um espaço, removê-lo novamente e clicar em salvar para que o arquivo de designer seja regenerado adequadamente)
fonte
(O que se segue é da experiência com o VS2005.)
Se você editar uma página ASPX durante a depuração, o codebehind não será atualizado com as novas classes. Portanto, você precisa parar a depuração, editar trivialmente a página ASPX (como adicionar um botão ou algo assim), clicar em Modo Design e excluir o botão. Em seguida, seus arquivos de designer devem ser atualizados.
Se você está tendo um problema diferente com o VS2008, não posso ajudar.
fonte
Quando você estiver no modo de design, clique com o botão direito na tela e clique em Atualizar.
fonte
Outra coisa que funcionou foi -
Por exemplo:
<Compile Include="<Path>\FileName.ascx.designer.cs"> <DependentUpon>FileName.ascx</DependentUpon> </Compile>
fonte
Se você estiver usando o VS2013 ou posterior, verifique se o código referenciado com o atributo "CodeBehind" não "CodeFile" e siga as etapas abaixo
fonte
fonte
Aqui está o que eu experimentei: Selecione a pasta do site, clique com o botão direito do mouse no Solution Explorer, selecione Converter em aplicativo Web para todo o arquivo aspx que um arquivo de designer será gerado.
Sameer
fonte
Apenas para adicionar à longa lista de respostas aqui - acabei de encontrar este problema no VS2010 (SP1) com um arquivo .aspx. Tentei adicionar e remover controles ASP padrão (que funcionaram no passado), mas no final tive que remover uma das linhas runat = server de um controle existente (e salvar) para forçar a regeneração do arquivo do designer.
fonte
Há anos, encontro o mesmo problema, trabalhando no Visual Studio 2008. E tentei todas as "soluções" no StackOverflow e dezenas de blogs, como tenho certeza de que todos vocês têm. E às vezes eles funcionam, e às vezes não, assim como eu tenho certeza que todos vocês encontraram. E, aparentemente, ainda é um problema no VS2010 e no VS2012.
Então, finalmente, há alguns meses, decidi que bastava e, ao longo de algumas semanas , construí uma ferramenta chamada "Redesigner" que gera arquivos .designer. É de código aberto sob a licença BSD , com o código fonte disponível no SourceForge - livre para usar, livre para roubar, livre para fazer o que quiser. E faz o que o Visual Studio deixa de fazer com tanta frequência, que é gerar arquivos .designer de forma rápida e confiável.
É uma ferramenta de linha de comando independente que analisa arquivos .aspx e .ascx, executa toda a mágica de reflexão necessária e cospe arquivos .designer corretos. Ele faz toda a análise e reflexão para evitar a dependência do código existente, que todos sabemos muito bem está quebrado. Ele foi escrito em C # no .NET 3.5, mas evita o uso do System.Web para outras coisas que não sejam declarações de tipo e não usa nem depende do Visual Studio .
O redesigner pode gerar novos arquivos .designer; e oferece uma opção --verbose para que, quando tudo der errado, você receba mensagens de erro muito melhores do que "Exceção do tipo System.Exception foi lançada". E há uma opção --verify que pode ser usada para informar quando seus arquivos .designer existentes estão quebrados - faltando controles, declarações de propriedades incorretas, ilegíveis pelo Visual Studio ou outras fontes.
Temos usado no meu local de trabalho para nos livrar dos congestionamentos a maior parte do mês passado e, embora o Redesigner ainda seja um beta, está chegando o suficiente para valer a pena compartilhar sua existência com o público. Em breve, pretendo criar um plug-in do Visual Studio para que você possa simplesmente clicar com o botão direito do mouse para verificar ou gerar novamente os arquivos de designer da maneira que você sempre desejou. Entretanto, nesse meio tempo, o uso da linha de comando é bastante fácil e poupa muitas dores de cabeça.
De qualquer forma, baixe uma cópia do Redesigner agora e pare de arrancar o cabelo . Você nem sempre precisará disso, mas quando precisar, ficará feliz por tê-lo!
https://sourceforge.net/projects/redesigner/
fonte
TL; DR;
Edite o
Inherits
atributo da@Page
diretiva da página ASPX e pressione Salvar. Seu arquivo de designer deve ser regenerado.Verifique se
Inherits
= <namespace>. <class_name> eCodeBehind
= <class_name> .aspx.csEu estava tentando fazer isso em um projeto do Sharepoint 2010, usando o VS 2010 e o TFS , e nenhuma das soluções acima funcionou para mim. Principalmente, a opção "Converter em aplicativo Web" está ausente no menu com o botão direito do mouse no arquivo .ASPX ao usar o TFS no VS 2010.
Esta resposta ajudou finalmente . Minha turma ficou assim:
E minha
@Page
diretiva foi (quebras de linha aqui para maior clareza):Mudei primeiro
Inherits
para MyProjects.Finance.Pages , pressione Salvar, depois mudei novamente para MyProjects.Finance.Pages.FinanceSubmission e clique em Salvar novamente. E wallah! A página do designer foi regenerada!Espero que isso ajude alguém usando o TFS!
fonte
Dentro do Visual Studio:
1) Remova o arquivo aspx.designer.cs
2) Clique com o botão direito do mouse no seu arquivo aspx e selecione "Converter em aplicativo Web". Isso deve adicionar o aspx.designer.cs de volta e atualizado.
Se você receber um erro dizendo:
"Falha na geração do arquivo de designer: o método ou operação não está implementado."
Tente fechar o Visual Studio e reabra seu projeto e execute a etapa número dois novamente
Como gerar aspx.designer.cs no visual studio?
fonte
Etapa 1 : selecione todo o seu código aspx, corte [CTRL + X] nesse código e salve.
Etapa 2 : cole novamente o mesmo código na mesma página e salve novamente
Agora sua página .desinger será atualizada com todos os controles na página .aspx.
fonte
Exclua o arquivo designer.cs e clique com o botão direito do mouse no arquivo .aspx e escolha "Converter em aplicativo da Web". Se houver um problema com suas declarações de controle, como uma tag que não está sendo bem formada, você receberá uma mensagem de erro e precisará corrigir a tag malformada antes que o visual studio possa gerar novamente seu arquivo de designer com êxito.
No meu caso, nesse ponto, descobri que o problema era que havia declarado um controle de botão que não estava dentro de uma tag de formulário com um atributo runat = "server".
fonte
Este é um erro no IDE; Eu o vejo desde o VS 2003. A solução é simples.
Salve seus arquivos. Saia completamente do IDE (verifique se o processo para, gerente de tarefas)
Reabra a solução, limpe a marcação, salve. Fixo.
fonte
Eu tive dois problemas ... AJAXControlkit desatualizado - excluí a dll antiga, removeu os controles antigos da caixa de ferramentas, baixou nova versão, carregou a caixa de ferramentas e arrastou e soltou novos controles na página (consulte http://www.experts-exchange.com /Programming/Languages/.NET/Visual_Studio_.NET_2005/Q_24591597.html )
Também tive erros de ortografia no meu controle de rótulo (tinha usado 'classe' em vez de 'cssclass').
Ta
fonte
Eu tive o problema que meus novos controles não gerariam no arquivo de designer quando declarados no arquivo .ascx. O problema foi que eu os declarei no código por trás também. A exclusão da declaração no código por trás resolveu meu problema.
fonte
Se você é como eu e adiciona arquivos .ASPX antigos a um projeto mais recente. Você provavelmente esquecerá alguns dos controles usados na página.
Se sim, primeiro, se houver vários arquivos que você está instalando; Corrija um de cada vez primeiro.
Ao compilar, corrija os erros gerados. Eles provavelmente serão os mesmos erros em todos os arquivos.
Em seguida, se você tiver arquivos de Designer, exclua todos os arquivos de designer inseridos. Em seguida, verifique se não há outros erros ao compilar, além dos arquivos de designer.
Por fim, clique com o botão direito do mouse no seu projeto da web e clique em Converter em aplicativo da web. Isso irá inserir os arquivos de designer que você precisa.
Essas são as melhores etapas absolutas para corrigir os problemas.
fonte
Uma coisa que ninguém mencionou é visitar a página . Meu arquivo de designer parou de regenerar porque estava incluindo um controle de usuário que não existia (por vários motivos) e nenhuma das coisas sugeridas aqui funcionou. Por qualquer motivo, não recebi nenhum erro no Visual Studio - além do que se queixava do fato de que meus controles do lado do cliente não existiam porque não estavam sendo regenerados, é claro.
Na verdade, foi necessário visitar a página para que o ASP.Net me dissesse o erro.
fonte
Isso também pode acontecer se você atualizar o espaço para nome e não o espaço no arquivo do designer. Correção: atualize também o espaço para nome no arquivo de designer.
fonte
A solução que funcionou para mim é:
Eu apenas copiei a página e colei na mesma parte, renomeei a primeira página (qualquer que seja o nome) e renomeei a página copiada como a página original. Agora os controles estão acessíveis.
fonte