我所拥有的是Asp.Net MVC项目,该项目引用了c ++ / cli程序集,而c ++ / cli程序集又引用了一些本机c ++ dll。这最终是通过Web角色的天蓝色Web服务发布的。
This建议将原生dll复制到"%windir%\ system32 \ inetsrv"启动任务中的文件夹,以便Web角色可以在角色启动时找到它们。这在云上可以正常工作。
但是在本地调试时,我希望IIS Express可以使用这些dll。这些是64位dll所以我必须运行64位版本的IIS express。我试图找出IIS Express 64位的%windir%\ system32 \ inetsrv等价物。
答案 0 :(得分:2)
事实证明,问题是%windir%。
在64位计算机上,当运行32位进程时,会重定向到SysWoW64。
由于VS是32位,启动任务从VS内部作为32进程运行,文件被复制到错误的目录。
在使用VS和%windir%时使用%windir%\Sysnative否则解决了完整IIS的问题。
对于IIS表示要复制到的正确目录是“C:\ Program Files \ IIS Express”
答案 1 :(得分:0)
是否可以在引用的属性上设置Copy Local
,以便在deploy / debug上本地复制dll?除非我遗漏了某些东西,否则这应该允许IIS找出它需要的位置。