我的解决方案包含一些 .net 项目,其中一个是我正在尝试发布的 ASP.NET MVC 项目。所有配置都设置正确,x32 和 x64,没有一个设置为 AnyCPU。
问题:
如果我尝试将项目发布为 32 位,一切都很好,但尝试以 64 位模式发布失败并出现错误:
Could not load file or assembly "ProjectA" or one of its dependencies.
An attempt was made to load a program with an incorrect format.
我尝试并注意到的:
自 VS 2013 以来,MSbuild 是 VS 的一部分,而不是像以前那样属于 .NET Framework。如果我只是在 x64 模式下构建解决方案,"C:\Program Files (x86)\MSBuild\12.0\Bin\MSBuild.exe"
则首先运行 32 位 msbuild 并启动 64 位 msbuild"C:\Program Files (x86)\MSBuild\12.0\Bin\amd64\MSBuild.exe"
所以没有发布的正常构建工作得很好。
但是,如果我选择publish
32 位 MSbuild 将首先运行,然后它会启动 32 位 aspnet_compilerc:\Windows\Microsoft.NET\Framework64\v4.0.30319\aspnet_compiler.exe
而不是 64 位编译器,这会导致我上面提到的错误。
到目前为止,我发现的唯一解决方法是更换
"C:\Windows\Microsoft.NET\Framework\v4.0.30319\aspnet_compiler.exe"
一个 64 位的
"C:\Windows\Microsoft.NET\Framework64\v4.0.30319\aspnet_compiler.exe"
问题:
我的问题有更好的(合法)解决方案吗?这看起来像VS中的一个错误