2011-05-16 14 views
7

Tengo un proyecto de implementación web que crea y comprime un proyecto de aplicación web. Estoy recibiendo una gran cantidad de errores cuando construyo el WDP, de la siguiente manera:Archivo no encontrado al crear un proyecto de implementación web

Error 73 El archivo '/Foo.csproj/Properties/Administration/Modules/ACL.ascx' no existe. /Foo.csproj/Properties/Administration/ACL.aspx

Error 74 Etiqueta del servidor desconocido 'foo: ACL'. /Foo.csproj/Properties/Administration/ACL.aspx

Estos errores provienen del Proyecto de implementación web, no del WAP. Los errores siempre siguen el mismo patrón, primero hay un error al encontrar el archivo .ascx y luego un error asociado que indica que la etiqueta del servidor relacionada con el archivo ascx anterior se desconoce (esto obviamente tiene sentido).

No hay errores o advertencias en el ascx o aspx.

Los controles se registran usando una etiqueta <%@ Register %> (en lugar de ser registrados en el web.config)

qué podría estar causando un síntoma tal?


ACTUALIZACIÓN

Los errores son procedentes de aspnet_compiler.exe que se ejecuta con el siguiente comando:

C: \ Windows \ Microsoft.NET \ Framework \ v2.0.50727 \ aspnet_compiler.exe -v "/Foo.csproj" -p "C: \ Projects \ Foo \ Foo" -u -f obd \ Staging \ TempBuildDir

y produce los siguientes errores

Utilidad para PRECOMPILE una aplicación ASP.NET
Copyright (C) Microsoft Corporation. Todos los derechos reservados. /Foo.csproj/Properties/Administration/ACL.aspx(5): error ASPPARSE: El archivo '/Foo.csproj/Properties/Administration/Modules/ACL.ascx' no existe.
/Foo.csproj/Properties/Administration/ACL.aspx(7): error ASPPARSE: etiqueta del servidor desconocido 'foo: ACL'.

en Foo.csproj ACL.aspx está declarada como

<Content Include="Administration\ACL.aspx" /> 

<!-- Snip --> 

<Compile Include="Administration\ACL.aspx.cs"> 
    <DependentUpon>ACL.aspx</DependentUpon> 
    <SubType>ASPXCodeBehind</SubType> 
</Compile> 
<Compile Include="Administration\ACL.aspx.designer.cs"> 
    <DependentUpon>ACL.aspx</DependentUpon> 
</Compile> 

y ACL.ascx como

<Content Include="Administration\Modules\ACL.ascx" /> 

<!-- Snip --> 

<Compile Include="Administration\Modules\ACL.ascx.cs"> 
    <DependentUpon>ACL.ascx</DependentUpon> 
    <SubType>ASPXCodeBehind</SubType> 
</Compile> 
<Compile Include="Administration\Modules\ACL.ascx.designer.cs"> 
    <DependentUpon>ACL.ascx</DependentUpon> 
</Compile> 

No puedo entender que el elemento /Properties/ de los caminos está viniendo en los caminos en el error! No está en el archivo del proyecto y no se está alimentando al aspnet_compiler.exe.

El archivo de solución y los archivos de proyecto son idénticos (aparte de los nombres de proyecto) a una solución de trabajo.

Respuesta

2

que he visto algo semejante a esto (mi recuerdo es cierto que un poco borrosa!) Cuando la "Acción de generación" para el archivo se establece en None en lugar de Content. Para ver si este es el problema:

  1. Haga clic en el archivo que está en cuestión, en el Explorador de soluciones y seleccione Properties
  2. mirada a la "Acción de generación" para el archivo, si dice None correcta a Content.

La otra posibilidad es que algo haya ido "mal" en su .csproj, ya que la ruta de acceso a ACL.ascx parece decididamente extraña. ¿Debería realmente estar bajo /Foo.csproj/Properties/? Si mi primera sugerencia no es útil, me gustaría sugerir que intenta lo siguiente:

  1. Haga clic derecho en Foo.csproj en el Explorador de soluciones y seleccione Unload Project
  2. Una vez que haya terminado la descarga, haga clic en Foo.csproj (Unavailable) en el Explorador de soluciones y elegir Edit Foo.csproj
  3. ACL.ascx Buscar y comparar el marcado XML para ese archivo a otro archivo "bueno" que no genera el error, hay probablemente una sutil diferencia que hay, que está causando el error
+0

sí, la .. ./Properties/... se ve raro pero no puedo ver esa ruta en ninguno de mis archivos de proyecto. Seguiré cavando Saludos por los pensamientos –

1

Me estaba saliendo un error similar.

Mi situación era la siguiente:

root/page.aspx 
root/page.aspx.cs 
root/page.aspx.designer.cs 
root/X/page.aspx 

por alguna razón alguien ha copiado el archivo en la carpeta Page.aspx X, e incluso eliminar el archivo de mi proyecto de aplicación web, el proyecto de implementación seguía teniendo problemas . También noté que incluso con un nombre diferente (por ejemplo, copia de page.aspx en la carpeta x, el problema aún surgía).

Solo funcionó cuando eliminé el archivo page.aspx (o el nombre que tenía) de la carpeta X.

8

me encontré con esta misma situación en un proyecto en mi escritorio, y aquí fue mi solución:

//doesn't work 
<%@ Control Language="C#" 
    AutoEventWireup="true" 
    Inherits="Controls_CatalogCustomerORW" 
    CodeFile="CatalogCustomerORW.ascx.cs" %> 

//does work 
<%@ Control Language="C#" 
    AutoEventWireup="true" 
    Inherits="Controls_CatalogCustomer" 
    Codebehind="CatalogCustomer.ascx.cs" %> 

el error aparece ser la vez sutil CodeFile vs CodeBehind

Cuestiones relacionadas