我在 .NET 3.5 中遇到一个奇怪的构建问题。编译器在尝试构建 Web 部署项目时崩溃。
C:\ Program Files \ MSBuild \ Microsoft \ WebDeployment 9.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' ---> System.Security.XmlSyntaxException:语法无效。
我可以构建得很好,直到我做了一个小的代码更改。我已恢复更改,但仍然遇到此错误。其他团队成员可以构建完全相同的源。
我尝试过的事情
以前有人遇到过这种类型的错误吗?我的下一步是重新格式化,除非我能找到其他东西来尝试。
尝试清除 [Windows 文件夹]\Microsoft .NET\Framework .0xxx\Temporary ASP.NET Files*.* 文件夹 - 有时可能会被 GB 的临时文件弄乱。另外,请检查您的网站是否使用模拟或备用安全帐户。如果是,请确保向模拟帐户授予上述文件夹的写入和执行权限。
在 nant 中运行完整构建后,我终于能够构建了:
nant build
我想我以前尝试过这个。不管怎样,它现在可以工作了——不用感谢错误消息。我想我的 MyProject 的 nant 配置缺少依赖项或其他东西。
我因另一个原因遇到了同样的问题。 我在我的 web.config 文件中模拟另一个用户,这是不正确的访问某些目录,删除此配置已修复。