构建Web部署项目时找不到文件

Gre*_*g B 8 asp.net web-deployment-project

我有一个Web部署项目,用于构建和压缩Web应用程序项目.我在构建WDP时遇到了很多错误,如下所示:

错误73文件'/Foo.csproj/Properties/Administration/Modules/ACL.ascx'不存在./Foo.csproj/Properties/Administration/ACL.aspx

错误74未知服务器标记'foo:ACL'./Foo.csproj/Properties/Administration/ACL.aspx

这些错误来自Web部署项目,而不是WAP.错误总是遵循相同的模式,首先是找到.ascx时出错,然后是一个相关的错误,说明与之前的ascx相关的服务器标签是未知的(这显然是有意义的).

ascx或aspx中没有错误或警告.

使用<%@ Register %>标记注册控件(而不是在web.config中注册)

可能导致这种症状的原因是什么?


UPDATE

aspnet_compiler.exe使用以下命令运行错误:

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

并产生以下错误

预编译ASP.NET应用程序的实用程序
版权所有(C)Microsoft Corporation.版权所有./Foo.csproj/Properties/Administration/ACL.aspx(5):错误ASPPARSE:文件'/Foo.csproj/Properties/Administration/Modules/ACL.ascx'不存在.
/Foo.csproj/Properties/Administration/ACL.aspx(7):错误ASPPARSE:未知的服务器标签'foo:ACL'.

在Foo.csproj中,ACL.aspx声明为

<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>
Run Code Online (Sandbox Code Playgroud)

和ACL.ascx为

<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>
Run Code Online (Sandbox Code Playgroud)

我无法理解/Properties/错误路径中路径元素的来源!它不在项目文件中,也没有被送到aspnet_compiler.exe.

解决方案文件和项目文件与工作解决方案完全相同(除了项目名称).

jco*_*and 13

我刚刚在办公桌的一个项目中遇到过同样的情况,这是我的解决方案:

//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" %>
Run Code Online (Sandbox Code Playgroud)

错误似乎是永远微妙的CodeFilevsCodeBehind


Rob*_*Rob 2

当文件的“构建操作”设置为None不是Content. 要查看这是否是问题所在:

  1. 在解决方案资源管理器中右键单击有问题的文件,然后选择Properties
  2. 查看文件的“构建操作”,如果它显示None将其更正为Content.

另一种可能性是您的系统出现了“问题”,.csproj因为 ACL.ascx 的路径看起来非常奇怪。真的应该在下面吗/Foo.csproj/Properties/?如果我的第一个建议没有帮助,我建议尝试以下操作:

  1. 在解决方案资源管理器中右键单击Foo.csproj并选择Unload Project
  2. 卸载完成后,Foo.csproj (Unavailable)在解决方案资源管理器中右键单击并选择Edit Foo.csproj
  3. 搜索ACL.ascx该文件的 XML 标记并将其与另一个不会生成错误的“好”文件进行比较,可能存在导致错误的细微差别