无法将dll添加到.net核心项目

时间:2017-03-26 16:09:54

标签: visual-studio-2015 nuget

我有一个用C ++编写的dll,它做了一些繁重的计算,我需要将它导入我的.net核心项目(VS2015)。 (它在.net的早期版本中运行良好,但是好的并且微软删除了该功能......)

我知道我需要设置一个本地nuget feed,这样我就可以通过nuget将dll拉入项目了。但我似乎无法让nuget命令工作(是的,我下载了nuget.exe并运行它,然后重新启动VS2015)。每当我尝试其中一个nuget命令时,它只会说'nuget' is not recognized as an internal....

我甚至读过一篇帖子说NuGet.CommandList可以让你可以直接在PM控制台中运行nuget函数,所以我尝试了。没有骰子......

我下载了NuGet Package Explorer工具,它可以为我创建nuget包,但是当我尝试将它们导入我的项目时,它们总是会导致错误。当我将"YourFace": "1.0.1",添加到我的project.json时,它会给出NU1001错误"依赖关系YourFace> = 1.0.1无法解析"。

以下是package explorer工具中的xml:

<?xml version="1.0" encoding="utf-8"?>
<package xmlns="http://schemas.microsoft.com/packaging/2010/07/nuspec.xsd">
    <metadata>
        <id>YourFace</id>
        <version>1.0.0</version>
        <authors>Your Face</authors>
        <requireLicenseAcceptance>false</requireLicenseAcceptance>
        <description>My package description.</description>
    </metadata>
</package>

我已尝试编辑xml并添加各种内容,例如<files>部分(认为工具右侧的内容资源管理器意味着不应该这样做)。没有任何帮助。

有谁知道如何解决这个问题?

编辑: 有时我会得到一个不同的错误:

Package YourFace 1.0.0 is not compatible with netcoreapp1.0 (.NETCoreApp,Version=v1.0). Package YourFace 1.0.0 supports: net (.NETFramework,Version=v0.0)
One or more packages are incompatible with .NETCoreApp,Version=v1.0.

我在某处读到这是因为该文件直接位于lib文件夹中,它需要嵌套在正确的框架文件夹中,但它也没有帮助。另外,我不知道为什么有时会出现一个错误,有时会出现另一个错误。

1 个答案:

答案 0 :(得分:1)

  

&#39;的NuGet&#39;不被认为是内部......

这是因为nuget命令与NuGet CLI referencePowerShell reference不同。程序包管理器控制台不支持NuGet,但NuGet CLI参考支持。

此外,要在.net核心中引用外部dll,您需要创建自己的nuget包。 NuGet文档展示了如何从dll创建包:https://docs.microsoft.com/en-us/nuget/create-packages/creating-a-package 为此,您需要编辑nuspec文件并在nuspec文件中添加以下代码。

<package>
 <metadata>
    <id>YourFace</id>
    <version>1.0.0</version>
    <authors>Your Face</authors>
    <requireLicenseAcceptance>false</requireLicenseAcceptance>
    <description>My package description.</description>
 </metadata>

 <files>
   <file src="path\*.dll" target="lib\netCoreApp1.0"/>
 </files>

希望这可以帮到你。