Robert Giesecke的Unmanaged Exports和Visual Studio 2015构建错误

时间:2015-08-13 17:35:34

标签: delphi visual-studio-2015

我们使用我们的Delphi应用程序已经使用了Robert Giesecke优秀的Unmanaged Exports库。我们刚刚升级到Visual Studio 2015并且它似乎不再起作用了 - 我可以在VS2013中编译完全相同的项目并且它工作正常,可以访问DLL中的函数等。我在VS2015中重新编译(完全相同的代码和项目)并且我在Unmanaged Exports库上出现构建失败,如下所示:

Task Parameter:SdkPath=C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.6 Tools\ (TaskId:44)
Cannot find lib.exe in 'K:\Visual Studio 2015\Common7\IDE\\..\..\VC\bin'. (TaskId:44)
Done executing task "DllExportAppDomainIsolatedTask" -- FAILED. (TaskId:44)
Done building target "RGieseckeDllExport" in project "BWSITwilio.csproj" -- FAILED.: (TargetId:73)

因此,库不会导出DLL中的函数供我在Delphi中访问。我可以在VS2013停留一段时间,但VS2015中的库似乎有些不对劲(可能在NETFX 4.6文件夹中查找?)

我对想法持开放态度,所以我可以使用VS2015 - 我即将卸载2013,但现在不得不推迟。

提前感谢任何输入或建议 - 这个库真的允许我们继续使用Delphi,因为我们可以使用它访问.NET中的任何内容!

2 个答案:

答案 0 :(得分:2)

Nuget版本1.2.7(2015年8月16日)的发行说明包括:

  

当它无法找到lib.exe

时,不再失败

我怀疑您使用的是旧版本,可以通过转到最新版本来解决您的问题。

您可能正在使用在VS 2015发布之前构建的版本,我确信Robert的最新版本现在支持VS 2015.

对于它的价值,即使仍然无法找到lib.exe因为您不需要.lib文件导入Delphi,也不会打扰您。

答案 1 :(得分:0)

我遇到了同样的问题,并且能够通过手动将一些Visual Studio 2013文件复制到2015文件夹来解决这个问题。我在计算机上搜索了lib.exe,并将Beyond Compare与两个应用程序的程序文件目录一起使用。

  • 打开C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin\ 资源管理器,选择所有文件,复制。
  • 在资源管理器中打开C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin\,粘贴。提示替换时,请选择“跳过”。

执行此操作后,我能够再次编译在Visual Studio 2015中使用RGiesecke.DllExport的项目。

我无法告诉你我安装了哪个特定版本的2013,因为我已经卸载了,但显然这些文件是剩下的。我正在运行MS VS Community 2015版本14.0.23107.0。

不确定它是否相关,但我从2013 bin文件夹版本复制的lib.exe读取为12.0.21005.1。