c# - 如何使用使用不同选项构建的 C# 和 C++ 库创建 Nuget 包?

标签 c# c++ visual-c++ nuget nuget-package

有一个project that wraps V8 engine into C# library .它的 nuget 包坏了,我想修复它。创建包似乎很容易,并且有记录的方法可以为不同的 .NET 版本打包不同的 C# dll。但是,我不知道如何使用可以使用不同选项构建的 C++ 和 C# 代码打包 .dll:

  • x64 或 x86 且不是“任何 CPU”
  • MS Visual C++ 2010/2012/2013
  • 调试或发布
  • .NET 4.0/...

我找到了 this thread似乎可以在 .targets 文件中使用 MSBuild 命令。然后我读了in the docs MSBuild 方法很旧,不推荐使用。那我该怎么办呢?

还有一个问题是:如果这个包依赖于MSVC++,如何指定呢?如何让包使用者选择特定版本的 dll(针对 MSVC++2010、2012 或 2013 构建)?我想打包 msvcr*.dll 不是个好主意。

最佳答案

看看 SQLite 包如何部署它们的 DLL。使用 2.x 和更早版本的 NuGet,您需要编写一些 powershell 代码来检查 Visual Studio 的版本并手动将更改应用到项目。

我们正在努力通过将要部署在 NuGet v3 中的更新来针对这个确切的问题寻求更优雅的解决方案

关于c# - 如何使用使用不同选项构建的 C# 和 C++ 库创建 Nuget 包?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29010922/

相关文章:

c# - 在 WPF/C# 中以编程方式更改边距

c# - 我可以加快从 C++ Dll 到 C# 的回调吗?

c# - app.manifest 和 assemblyInfo.cs 版本号以及是否需要 app.manifest?

python - 微调 keras .h5 模型到 c++ 中使用的 .pb 模型给出运行模型失败错误

c++ - 并行测试与 geos 的交集时出现段错误

c++ - 当 boost 库 "interprocess"定义一个 named_mutex 时,这些 named_mutex 是否在不同进程之间正常工作,或者只与线程一起工作?

c++ - PNaCl - 编译错误 "Only Win32 target supported"

windows - 如何编译要从 DMD 链接的 msvc 静态库?

c# - 使用 C# 和 LINQ to XML 在 XML 文件中选择属性值

c++ - Windows 上 emacs 中的 Company-clang 模式