有没有人遇到过:“无法加载文件或程序集'aspnet_compiler ...无法授予执行权限”?

时间:2009-06-04 13:57:40

标签: .net compiler-construction nant

我在.NET 3.5中遇到了一个奇怪的构建问题。编译器在尝试构建Web部署项目时崩溃。

  

C:\ Program Files \ MSBuild \ Microsoft \ WebDeployment \ v9.0 \ Microsoft.WebDeployment.targets(531,9):错误MSB6006:“aspnet_compiler.exe”已退出,代码为-532459699。

导致:

  

无法加载文件或程序集'aspnet_compiler,Version = 2.0.0.0,Culture = neutral,PublicKeyToken = b03f5f7f11d50a3a'或其中一个依赖项。无法授予执行权限。 (HRESULT异常:0x80131418)

Microsoft.WebDeployment.targets的那一部分是这样的:

<AspNetCompiler 
      PhysicalPath="$(_AspNetCompilerSourceWebPath)"
      TargetPath="$(TempBuildDir)"
      VirtualPath="$(_AspNetCompilerVirtualPath)"
      Force="$(_Force)"
      Debug="$(DebugSymbols)"
      Updateable="$(EnableUpdateable)" 
      KeyFile="$(_FullKeyFile)" 
      KeyContainer="$(_AspNetCompilerKeyContainer)"
      DelaySign="$(DelaySign)" 
      AllowPartiallyTrustedCallers="$(AllowPartiallyTrustedCallers)" 
      FixedNames="$(_AspNetCompilerFixedNames)" 
      Clean="$(Clean)"
      MetabasePath="$(_AspNetCompilerMetabasePath)"
/>

如果我尝试:

aspnet_compiler.exe -errorstack -v /MyProject -p C:\MyProject -f -c -d .\TempBuildDir\

我明白了:

  

未处理的异常:System.IO.FileLoadException:无法加载文件或程序集'aspnet_compiler,Version = 2.0.0.0,Culture = neutral,PublicKeyToken = b03f5f7f11d50a3a'或其依赖项之一。无法授予执行权限。 (HRESULT异常:0x80131418)

     

文件名:'aspnet_compiler,Version = 2.0.0.0,Culture = neutral,PublicKeyToken = b03f5f7f11d50a3a'---&gt; System.Security.XmlSyntaxException:语法无效。

我可以修好,直到我做了一个小代码更改。我已经恢复了改变,但我仍然遇到这个错误。其他团队成员可以构建完全相同的源。

我尝试过的事情

  • 重新安装VS
  • 重新安装Web部署项目addin
  • 重新启动
  • 使用nant构建
  • 在VS中构建
  • 使用aspnet_compiler.exe从命令行构建

之前有没有遇到过这种类型的错误?我的下一步是重新格式化,除非我能找到别的东西尝试。

3 个答案:

答案 0 :(得分:1)

尝试清除[Windows文件夹] \ Microsoft .NET \ Framework \ 2.0xxx \ Temporary ASP.NET Files *。*文件夹 - 有时可能会使用GB的临时文件。另外,请检查您的网站是否使用了模拟或其他安全帐户。如果是,请确保将上述文件夹的写入和执行权限授予模拟帐户。

答案 1 :(得分:0)

我终于能够在运行nant的完整版本后构建:

nant build
我以为我以前试过这个。无论如何,它现在有效 - 不,谢谢错误信息。我想我的MyProject的nant配置缺少依赖或其他东西。

答案 2 :(得分:0)

我出于另一个原因遇到了同样的问题。 我冒充我web.config文件中的另一个用户,这是不正确的访问某些目录,删除此配置是固定的。