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

时间:2015-03-12 13:19:54

标签: 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不是一个好主意。

1 个答案:

答案 0 :(得分:1)

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

我们正在努力为这个确切的问题寻找一个更优雅的解决方案,以及将在NuGet v3中部署的更新