Fórum Problemas com referência circular #8333
05/08/2009
0
Eu estou trabalhando em um projeto que ao publicar o mesmo (ou em algumas vezes ao usar a opção do Build) estou encontrando um erro que diz "Referências circular de arquivos não são permitidas" (Circular file references are not allowed).
No projeto eu tenho uma master page (de exemplo, vamos chamar de "master page pai") e depois eu tenho em uma subpasta no projeto com outra master page (de exemplo, vamos chamar de "master page filho") onde faço herança de interface com a "master page pai" e as demais páginas dessa subpasta fazem fazem uso da "master page filho". O erro apontado pelo visual studio indica problema na "master page filho". Nas pesquisas que fiz até o momento na internet, já tentei aplicar soluções tais como:
- retirar a tag @Register das master pages e das paginas e acrescentar no web.config pelo elemento <controls> que pertence ao elemento <page>;
- acrescentar o atributo batch do elemento <compilation> para false;
- encontrei também uma sugestão de deixar as tags do @Register nas master pages e nas páginas, só que retirar a palavra-chave "Register";
Nenhuma das opções acima solucionaram o meu problema ao tentar publicar o site. Abaixo vou colocar o html tanto da "master page pai" quanto da "master page filho".
MASTER PAGE PAI:
<%@ Master Language="C#" AutoEventWireup="true" CodeFile="GENTE.master.cs" Inherits="GENTE" %>
<%@ Register Assembly="Telerik.Web.UI" Namespace="Telerik.Web.UI" TagPrefix="telerik" %>
<%@ Register TagPrefix="uc1" TagName="HeadTag" Src="~/_includes/HeadTag.ascx" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head id="Head1" runat="server">
<title> .:: GENTE - Gestão Eletrônica Normalizada de Terceiros e Empregados ::. </title>
<!-- Includes -->
<uc1:HeadTag ID="HeadTag1" runat="server" />
<asp:ContentPlaceHolder id="head" runat="server">
</asp:ContentPlaceHolder>
</head>
<body>
<form id="form1" runat="server">
<div>
<telerik:RadScriptManager ID="RadScriptManager1" runat="server">
<Scripts>
<asp:ScriptReference Assembly="Telerik.Web.UI" Name="Telerik.Web.UI.Common.Core.js" />
<asp:ScriptReference Assembly="Telerik.Web.UI" Name="Telerik.Web.UI.Common.jQuery.js" />
</Scripts>
</telerik:RadScriptManager>
<telerik:RadFormDecorator ID="RadFormDecorator1" runat="server" Skin="Telerik" DecoratedControls="All" />
<%--dsd--%>
<table width="100%" border="0" cellpadding="0" cellspacing="0">
<!-- Cabeçalho -->
<tr>
<td align="left">
Menu Superior -
<a href="/GENTEv1/Protegidos/Empresas/Default.aspx">Empresas</a>
<a href="/GENTEv1/Protegidos/Pessoas/Default.aspx">Pessoas</a>
<a href="/GENTEv1/Protegidos/Administracao/Default.aspx">Administração</a>
</td>
<td align="right">
Patrocinador: <asp:Label ID="lblPatrocinador" runat="server" Text=""></asp:Label>
/ Prestador: <asp:Label ID="lblPrestador" runat="server" Text=""></asp:Label>
<a href="<%= Page.ResolveUrl("~/SelectPatPrest.aspx") %>" >Selecionar</a>
</td>
</tr>
<tr>
<td><img src="space.jpg" width="4" height="2" /></td>
</tr>
<!-- Cabeçalho -->
<tr>
<td colspan="2">
<!-- -->
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td id="HeadBar" colspan="4" height="5"></td>
</tr>
<tr>
<td width="7"></td>
<td width="250" height="500" valign="top" class="BordaFundo" id="Lateralbar">
<div class="Collapse"></div>
<table width="250" align="center" cellpadding="0" cellspacing="0">
<tr>
<td height="10"><img src="../_images/space.jpg" width="3" height="1"></td>
</tr>
<tr align="left">
<td width="10"></td>
<td height="30" valign="middle">
<!-- INICIO - Lateral -->
<asp:ContentPlaceHolder id="cphMenu" runat="server">
</asp:ContentPlaceHolder>
<!-- FIM - Lateral -->
</td>
<td width="10"> </td>
</tr>
</table>
</td>
<td width="3"><img src="../_images/space.jpg" width="3" height="2"></td>
<td valign="top" align="left" class="Borda">
<!-- Menu - Titulo -->
<!-- INICIO - Conteúdo -->
<asp:ContentPlaceHolder id="cphConteudo" runat="server">
</asp:ContentPlaceHolder>
<!-- FIM - Conteúdo -->
<br />
</td>
</tr>
</table>
<!-- -->
</td>
</tr>
</table>
<%--dfdsf--%>
</div>
</form>
</body>
</html>
MASTER PAGE FILHO:
<%@ Master Language="C#" MasterPageFile="~/GENTE.master" AutoEventWireup="true" CodeFile="GENTE_Emp.master.cs" Inherits="Protegidos_Empresas_GENTE_Emp" %>
<%@ Register TagPrefix="telerik" Assembly="Telerik.Web.UI" Namespace="Telerik.Web.UI" %>
<asp:Content ID="Content1" ContentPlaceHolderID="head" Runat="Server">
</asp:Content>
<asp:Content ID="Content3" ContentPlaceHolderID="cphMenu" Runat="Server">
<asp:ContentPlaceHolder id="cphSubMenu" runat="server">
<telerik:RadPanelBar id="RadPanelBar1" runat="server" style="float: left" skin="Telerik">
</telerik:RadPanelBar>
</asp:ContentPlaceHolder>
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="cphConteudo" Runat="Server">
<asp:ContentPlaceHolder id="cphSubConteudo" runat="server">
</asp:ContentPlaceHolder>
</asp:Content>
O erro que havia dito para vocês anteriormente apontado pelo visual studio na "master page filho" foi indicado logo na primeira linha: "<%@ Master Language="C#" MasterPageFile="~/GENTE.master" AutoEventWireup="true" CodeFile="GENTE_Emp.master.cs" Inherits="Protegidos_Empresas_GENTE_Emp" %>"
Ao retirar o atributo MasterPageFile desta linha, o visual studio consegue publicar a aplicação.
Alguém poderia me indicar o que mais posso fazer ou o que está acontecendo para que eu possa publicar a aplicação sem problemas? Desde já, obrigado pela atenção!
Atenciosamente,
Carlos
Carlos Nogueira
Curtir tópico
+ 0Posts
05/08/2009
Fabio Mans
Funcionou normalmente, tela abaixo.
Faça isso também, remova 1 por 1 e teste.
Espero ter ajudado.
Gostei + 0
05/08/2009
Carlos Nogueira
Eu tentei fazer o que você mencionou, removi a linha de referência do objeto do Telerik na master page GENTE_Emp (<%@ Register Assembly="Telerik.Web.UI" Namespace="Telerik.Web.UI" TagPrefix="telerik" %>) e também removi as 2 linhas de referência do Telerik na master page GENTE:
=> <%@ Register Assembly="Telerik.Web.UI" Namespace="Telerik.Web.UI" TagPrefix="telerik" %>
=> <%@ Register TagPrefix="uc1" TagName="HeadTag" Src="~/_includes/HeadTag.ascx" %>
Mas se eu fizer isso, tanto no momento de compilar ou de publicar o visual studio me gera uma série de erros por causa dos objetos do telerik informados nos demais pontos das master pages, como por exemplo uc1, telerik:RadScriptManager, telerik:RadFormDecorator, .... e assim por diante.
No seu caso, você não recebeu nenhum erro do visual studio em relação a estes demais objetos do telerik nas master pages?
Gostei + 0
05/08/2009
Carlos Nogueira
Gostei + 0
05/08/2009
Fabio Mans
Este recurso de Master Page aninhada é somente para o 3.5, não conheço estes componentes mas pode ser isso.
Como pode ver na minha tela não tive nenhum erro.
Espero ter ajudado
Fabio
Gostei + 0
06/08/2009
Carlos Nogueira
Sim, esta versão de componentes é para o framework 3.5, tanto é que estamos trabalhando com visual studio 2008 com o framework 3.5.
Abaixo segue a imagem que aponta para referência 3.5 dos objetos:
A pasta "Bin35" é justamente que se refere aos objetos do Telerik para o framework 3.5.
Eu já efetuei um teste (e até encontrei como "solução" em uma página de fórum nas pesquisas que efetuei), se eu retirar o atributo da master page filha apontando para master page pai e publicar, ele publica normalmente, e depois poderia acrescentar esse atributo no arquivo publicado.
Mas isso não é algo legal de ficar se fazendo com um problema desses, correto?
Você acha que existe mais alguma coisa que eu possa averiguar para tentar solucionar esse problema?
Gostei + 0
06/08/2009
Fabio Mans
Fabio
Gostei + 0
06/08/2009
Carlos Nogueira
Para você ter uma idéia, eu cheguei ao ponto de retirar todo o html (e comentar o code behind também) da "master page pai" e na "master page filha", só deixando a diretiva "Master" e ainda sim o visual studio apontou um problema de referência circular na "master page filha" por causa do atributo "MasterPageFile".
O que tem a mais que posso te dizer é que, chegou em um dado momento por aqui, que foi implementado uma classe na pasta App_Code (com nome de PageBase) e todas as páginas que estão na subpasta que mencionei no primeiro post e que fazem utilização da "master page filha" no code behind fazem herança para essa classe PageBase (ao invés do System.Web.UI.Page, que justamente a classe PageBase já herda este namespace).
Eu acredito que deve ter sido feito isso pois tem uma dessas página que faz uso de referência de um user control, mas estranho que mesmo removendo este user control dessa página ainda ocorre o mesmo problema.
Tem mais alguma coisa que eu possa ajudar ao informar sobre algo que possa ser analisado?
Gostei + 0
06/08/2009
Fabio Mans
Fabio
Gostei + 0
06/08/2009
Carlos Nogueira
Gostei + 0
10/08/2009
Devmedia
conseguiu resolver o seu problema? Podemos encerrar o chamado?
Gostei + 0
11/08/2009
Carlos Nogueira
Gostei + 0
11/08/2009
Fabio Mans
Fabio
Gostei + 0
11/08/2009
Carlos Nogueira
Mas também não gosto de componentes de terceiros, justamente por causa dessas situações, rs...
Mas beleza, agradeço pela sua atenção e valeu pelas dicas que você colocou nos posts anteriores. Se desejar, pode encerrar o atendimento.
Mais uma vez, obrigado!
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)