2

在编译我的 Web 部署项目时,它引用了带有 App_Browsers 文件夹的 Asp.Net 项目,我收到以下编译错误:

C:\Windows\Microsoft.NET\Framework\v2.0.50727\aspnet_compiler.exe -v /[PROJECTNAME].csproj -p "[FILEPATH]" -u -f -d .\TempBuildDir\ ASPNETCOMPILER : error ASPRUNTIME: Object reference未设置为对象的实例。

如果我删除 App_Browsers 文件夹,一切正常。

任何帮助,将不胜感激。

4

2 回答 2

1

好的,终于找到了解决办法。

如前所述,当包含 App_Browsers 文件夹时,aspnet 编译器会崩溃。因此,为避免这种情况,我从构建中排除了该文件夹,并执行了一个“构建后”操作,将文件夹复制到目标位置。这是通过将以下代码行添加到部署项目文件来完成的:

  <ItemGroup>
      <ExcludeFromBuild Include="$(SourceWebPhysicalPath)\App_Browsers\**\*.*"/>
      <MySourceFiles Include="$(SourceWebPhysicalPath)\App_Browsers\**\*.*"/>
  </ItemGroup>
  <Target Name="AfterBuild">
      <MakeDir Directories="$(OutputPath)\App_Browsers"></MakeDir>
      <Copy SourceFiles="@(MySourceFiles)" 
            DestinationFiles="@(MySourceFiles->'$(OutputPath)\App_Browsers\%(RecursiveDir)%(Filename)%(Extension)')">
      </Copy>
  </Target>

希望它可以帮助其他人,遇到同样的问题。

于 2009-07-08T21:38:32.083 回答
0

查看此页面: http://mdbf.codeplex.com/Thread/View.aspx?ThreadId= 67453

当 mobile.browser 文件放在 App_Browsers 根文件夹中时会发生此错误,因此只需为其创建一个子目录,即代替

App_Browsers
    -> mobile.browser

用这个:

App_Browsers
    -> Mobile
        -> mobile.browser
于 2010-03-23T21:48:20.477 回答