每次我尝试将我的非asp.net核心项目中的任何dll文件的引用添加到我的新asp.net核心项目时,我收到此错误消息:
.NET Core项目仅支持在此版本中引用.NET框架程序集。参考 其他程序集,它们需要包含在NuGet包中 参考那个包。
这里应该发生什么?是否有一种特殊的方式来做到这一点?接缝有一些我在这里缺少的东西,与之前的所有asp.net版本不同
答案 0 :(得分:1)
截至目前,您无法直接将完整的.NET框架dll直接添加到ASP.NET核心项目( netcoreapp1.0 )中。您将不得不创建NuGet包。
如果是项目特定的dll,则创建本地NuGet包。这些是我们在项目中遵循的生成NuGet包的步骤 -
1.下载Nuget.exe
并将其放在.csproj
文件所在的文件夹中。
2.打开cmd并输入nuget规格。将创建具有.nuspec
扩展名的文件。
3.打开创建的文件并添加标签:
<files> <file src="..\..\SomeRoot\**\*.*" target="libs\net461" /> </files>
4.在cmd中执行nuget pack A.csproj -IncludeReferencedProjects。创建具有.nupkg
扩展名的文件。
5.去视觉工作室。在NuGet包管理器设置中,添加“包源”并提供.nupkg
和.nuspec
文件所在的路径。
6.关闭Nuget包管理器并再次打开它。现在,您可以在浏览选项卡下的创建的包源中找到它。
注意:您的.nuspec
文件应该是:
<?xml version="1.0"?>
<package xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<metadata xmlns="http://schemas.microsoft.com/packaging/2010/07/nuspec.xsd">
<id>ABC.XYZ.FL</id>
<version>1.0.0.0</version>
<title>ABC.XYZ.FL</title>
<authors>ABC</authors>
<owners>ABC</owners>
<requireLicenseAcceptance>false</requireLicenseAcceptance>
<description>Framework that will be used to create objects in XYZ world</description>
<releaseNotes>Summary of changes made in this release of the package.</releaseNotes>
<copyright>2016</copyright>
<tags>ABC.XYZ.FL</tags>
</metadata>
<files>
<file src="bin\Debug\*.dll" target="lib\net461" />
</files>
</package>
以下链接包含有关创建nuget包并在本地托管的更多详细信息:
https://docs.nuget.org/create/creating-and-publishing-a-package
https://docs.nuget.org/create/hosting-your-own-nuget-feeds
https://docs.nuget.org/consume/nuget-config-file
看看这是否有帮助。