在Web部署项目中使用App_Browsers文件夹时,aspnet_compiler失败

时间:2009-07-08 19:33:47

标签: asp.net aspnet-compiler

编译使用App_Browsers文件夹引用Asp.Net项目的Web部署项目时,出现以下编译错误:

C:\ Windows \ Microsoft.NET \ Framework \ v2.0.50727 \ aspnet_compiler.exe -v /[PROJECTNAME].csproj -p“[FILEPATH]” - u -f -d。\ TempBuildDir \ ASPNETCOMPILER:错误ASPRUNTIME:对象引用未设置为对象的实例。

如果删除App_Browsers文件夹,一切都会完美无缺。

任何帮助都将不胜感激。

2 个答案:

答案 0 :(得分: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>

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

答案 1 :(得分:0)

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

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

App_Browsers
    -> mobile.browser

使用它:

App_Browsers
    -> Mobile
        -> mobile.browser