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

Asked
Viewd2348

2

当编译引用带有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

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

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

 App_Browsers
    -> mobile.browser
 

使用此:

 App_Browsers
    -> Mobile
        -> mobile.browser
 
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>
 

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