gpt4 book ai didi

c# - Windows Azure 找不到 C++/CLI 项目的 DLL

转载 作者:行者123 更新时间:2023-11-30 19:29:45 24 4
gpt4 key购买 nike

我有一个包含非托管 C 压缩库的 C++/CLI 项目,并且该项目由调用 C++ 压缩函数的 MVC3 项目引用。

本地一切正常,但当我将解决方案发布到 Azure 云时,出现错误,提示找不到模块/dll:

无法加载文件或程序集“LZGEncoder.DLL”或其依赖项之一。找不到指定的模块。

为什么找不到DLL文件?它会去到错误的地方还是根本没有被编译?有什么办法可以检查吗?谢谢!

最佳答案

问题是云端缺少 Visual C++ 2010 运行时库。

我所做的是将 Visual C++ 2010 Redistributable 包添加到项目中,以及一个在启动时静默安装它的脚本,现在 native dll 开始工作了。如果您使用 native C dll,则还需要这个。

步骤:

1) Download Visual C++ 2010 Redistributable Package ,并将其添加到您的项目中。

2) 创建一个新的批处理文件并将其添加到其中:
vcredist_x64.exe /q /norestart<br/>
exit /b 0

3) 打开 ServiceDefinition.csdef 文件并将其添加到相关的 WebRole 元素下:

<Startup>
<Task commandLine="InstallVCRedist.bat" executionContext="elevated" taskType="simple" />
</Startup>

更新:
Visual C++ 2012已发布并且相同的脚本可以工作,但每个人都应该确保 Azure 至少运行 Windows Server 2008 R2,否则启动任务将挂起并且角色将永远不会启动(直到您终止 vcredist 进程)通过 RDP 在任务管理器中)。

关于c# - Windows Azure 找不到 C++/CLI 项目的 DLL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11122213/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com