Visual studio 2015 将dll添加到.net核心项目时遇到问题 我有一个用C++编写的DLL,它做了一些繁重的计算,我需要把它导入到.NET核心项目VS2015中。它在以前版本的.net中运行得很好,但是微软删除了这个功能

Visual studio 2015 将dll添加到.net核心项目时遇到问题 我有一个用C++编写的DLL,它做了一些繁重的计算,我需要把它导入到.NET核心项目VS2015中。它在以前版本的.net中运行得很好,但是微软删除了这个功能,visual-studio-2015,nuget,Visual Studio 2015,Nuget,我知道我需要设置一个本地nuget提要,这样我就可以通过nuget将dll拉入项目中。但我似乎无法让nuget命令正常工作是的,我下载了nuget.exe并运行了它,然后重新启动了VS2015。每当我尝试其中一个nuget命令时,它只会说“nuget”不被识别为内部 我甚至读过一篇帖子,上面说NuGet.CommandList可以让你直接在PM控制台中运行NuGet函数,所以我试过了。没有骰子 我下载了NuGet Package Explorer工具,它可以为我创建NuGet软件包,但是当我尝试

我知道我需要设置一个本地nuget提要,这样我就可以通过nuget将dll拉入项目中。但我似乎无法让nuget命令正常工作是的,我下载了nuget.exe并运行了它,然后重新启动了VS2015。每当我尝试其中一个nuget命令时,它只会说“nuget”不被识别为内部

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

我下载了NuGet Package Explorer工具,它可以为我创建NuGet软件包,但是当我尝试将它们导入到我的项目中时,它们总是导致错误。当我将YourFace:1.0.1添加到my 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>
我在某个地方读到,这是因为文件直接位于lib文件夹中,需要嵌套在正确的framework文件夹中,但这也没有帮助。而且,我也不知道为什么有时会出现一个错误,有时又出现另一个错误

“nuget”未被识别为内部

这是因为nuget命令不同于and。Package Manager控制台不支持NuGet,但NuGet CLI引用支持它

此外,为了在.NETCore中引用外部dll,您需要创建自己的nuget包。NuGet文档展示了如何从dll创建包: 为此,您需要编辑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>

希望这能对您有所帮助。

谢谢您的帮助,CLI文档确实有所帮助。我能够在本地创建nuget包,并在我的项目YourFace:1.0.0中引用它,但每当我尝试在代码中引用它时,我都会遇到编译错误,就像使用YourFace一样;在控制器中。包在引用中正确显示,但我得到的名称空间名称“YourFace”的类型找不到。。。你知道什么会导致这一点吗?因为.NETCore是.NETFramework的子集,它允许在Windows商店应用程序中使用,而C++的DLL必须针对所有.NETFramework。因此,C++编写的DLL不应该与.NETCARE项目兼容。如果上述答案解决了您的问题,您可以标记它,这对其他有相同问题的社区是有益的。如果没有,请告诉我最新的信息。如果你还有其他问题,我建议你用新问题发布。谢谢。我仍然有一些错误,但我会发布一个新问题。我在这里创建了一个新问题:如果你有任何建议,我将非常感谢。
<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>