通过 MSBuild 构建解决方案时出现 ASPNETCOMPILER 错误,但在 Visual Studio 中成功

ASPNETCOMPILER error while building solution through MSBuild, but successful in Visual Studio

我有一个 Visual Studio 解决方案 (sln),大约有 15 个项目。

  1. 其中一些是 class 库 (.csproj)
  2. 其中一些是网站项目 (.csproj)
  3. 其中一些是网站(没有 .csproj)文件

当我使用 Visual Studio 构建解决方案时,它都可以正常编译和构建。 但是,当我从命令行执行 MSBuild 时,对于没有 csproj 文件的网站(即 Type 3 项目),它会失败。我收到以下错误:

ASPNETCOMPILER : error ASPCONFIG: Could not load file or assembly 'ChilkatDotNet45' or one of its dependencies. An attempt was made to load a program with an incorrect format. [C:\Users\XXXXXX\Sources\VSTS\Application\XXXXXXX\XXXXXXXScheduler.metaproj]

任何人都可以建议可能是什么原因以及如何解决这个问题吗?

ASPNETCOMPILER error while building solution through MSBuild, but successful in Visual Studio

AFAIK,ChilkatDotNet45.dll 适用于 .NET 4.5 Framework,因此您应该使用 Visual Studio 2015 年的 MSBuild:

C:\Program Files (x86)\MSBuild.0\Bin

不是来自 .net 框架(C:\Windows\Microsoft.NET\Framework\v4.0.30319)。

此外,如果您的解决方案引用了旧的 (v3.5) 系统程序集,您还需要将 .csproj 中的 <RequiredTargetFramework> 值更新为 4.0 或更高版本。

有关更多详细信息,请参阅 this thread and this thread

希望这对您有所帮助。