我有一个VS 2010解决方案,其中包含一个网站,其中有一个网络服务。Web服务引用在我们的64位生成服务器上构建解决方案时引起问题的COM DLL。我得到了典型的32/64位错误:
ASPNETCOMPILER : error ASPCONFIG: Could not load file or assembly 'xxx' or one of its dependencies. An attempt was made to load a program with an incorrect format
当我使用32位aspnet构建站点时aspnet_compiler构建得很好。那么,我如何指定一个网站应该作为32位构建呢?VS内部的配置管理器只允许我选择任何CPU,所以我不能将它更改为x86用于这个网站。
发布于 2018-02-05 09:13:17
使用以下命令
call "C:\Program Files\Microsoft Visual Studio 2008\VC\vcvarsall.bat" x86
MSBuild MySolutiuon.sln
也可以使用x86_amd64
任何CPU。注意,与其使用MSBuild
你可以像
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Target Name="PrecompileWeb">
<AspNetCompiler
VirtualPath="/MyWebSite"
PhysicalPath="c:\inetpub\wwwroot\MyWebSite\"
TargetPath="c:\precompiledweb\MyWebSite\"
Force="true"
Debug="true"
FixedNames="True"
/>
</Target>
</Project>
要使用上述配置,必须使用
MSBuild your.xml /p:Configuration=Release
发布于 2018-02-05 10:04:59
检查依赖walker,看看它能走多远。我猜它可能会停在vjsnativ.dll
.如果这是最远的话,试一试这个解决办法。
否则,你将不得不追踪程序找不到的每个DLL,并将它们复制到您的程序(或其垃圾箱)目录。
发布于 2018-02-05 10:54:15
这不是编译问题,而是环境问题。ASP.NET网站将永远作为任何CPU构建。
但是,如果在64位计算机上加载它,则默认情况下,IIS的64位版本正在运行,无法加载COM DLL,并且失败。
需要将IIS配置为在64位Windows上运行32位应用程序:http://www.microsoft.com/TechNet/prodtech nol/windowsserver2003/Library/iis/405f5bb5-87a3-43d2-8138-54b75db73a1.mspx
https://stackoverflow.com/questions/-100007323
复制相似问题