Nuget 包不以正确的方式包含依赖项
Nuget packing not including dependncies in right way
我有一个 C# 库,假设 "Utilities" 使用 Log4net 作为依赖项,我使用的是 .net framwork 4.6.1,我完成了这个库的开发并做了一个 nuget pack Utilities.projcs 和然后推送这个包。
当我尝试在另一个 asp.net 核心“2.1”项目中使用此实用程序时,我遇到了这个异常
**Method not found: 'log4net.ILog log4net.LogManager.GetLogger(System.String)'.**
System.MissingMethodException
HResult=0x80131513
Message=Method not found: 'log4net.ILog log4net.LogManager.GetLogger(System.String)'.
Source=Utilities
StackTrace:
at Utilities.Logging.MyLogManager.GetLogger(String loggerKey)
我的实用程序 nuget 规范文件
<?xml version="1.0"?>
<package >
<metadata>
<id>Utilities</id>
<version>1.2.0</version>
<title>Internal Utilities</title>
<authors>My Team</authors>
<owners>My Team</owners>
<requireLicenseAcceptance>false</requireLicenseAcceptance>
<description>This dll contains parsers,loggers and other functionalities that is commonly used.</description>
<releaseNotes>Rlease notes</releaseNotes>
<copyright>Copyright 2020</copyright>
<tags>Utilities</tags>
<dependencies>
<dependency id="log4net" version="2.0.8" include="all"/>
</dependencies>
</metadata>
<files>
<file src="bin\Debug\log4net.dll" target="" />
<file src="bin\Debug\log4net.xml" target="" />
<file src="bin\Debug\Utilities.dll" target="" />
</files>
</package>
任何解决这个问题的想法,我花了最后几天来解决它但没有运气
注意:当我在我的电脑(我的图书馆 + Log4net)中按位置手动添加参考时,它工作正常!
在 .net 标准中创建 class 库。
有关 .net 标准的更多信息,请访问 https://docs.microsoft.com/en-us/dotnet/standard/net-standard
如何创建 .net 标准 class 库 -> https://docs.microsoft.com/en-us/dotnet/core/tutorials/library-with-visual-studio?tabs=csharp
如何创建 .net 标准 Nuget -> https://docs.microsoft.com/en-us/nuget/quickstart/create-and-publish-a-package-using-visual-studio?tabs=netcore-cli
此图像将帮助您理解共享库背后的概念。
我有一个 C# 库,假设 "Utilities" 使用 Log4net 作为依赖项,我使用的是 .net framwork 4.6.1,我完成了这个库的开发并做了一个 nuget pack Utilities.projcs 和然后推送这个包。
当我尝试在另一个 asp.net 核心“2.1”项目中使用此实用程序时,我遇到了这个异常
**Method not found: 'log4net.ILog log4net.LogManager.GetLogger(System.String)'.**
System.MissingMethodException
HResult=0x80131513
Message=Method not found: 'log4net.ILog log4net.LogManager.GetLogger(System.String)'.
Source=Utilities
StackTrace:
at Utilities.Logging.MyLogManager.GetLogger(String loggerKey)
我的实用程序 nuget 规范文件
<?xml version="1.0"?>
<package >
<metadata>
<id>Utilities</id>
<version>1.2.0</version>
<title>Internal Utilities</title>
<authors>My Team</authors>
<owners>My Team</owners>
<requireLicenseAcceptance>false</requireLicenseAcceptance>
<description>This dll contains parsers,loggers and other functionalities that is commonly used.</description>
<releaseNotes>Rlease notes</releaseNotes>
<copyright>Copyright 2020</copyright>
<tags>Utilities</tags>
<dependencies>
<dependency id="log4net" version="2.0.8" include="all"/>
</dependencies>
</metadata>
<files>
<file src="bin\Debug\log4net.dll" target="" />
<file src="bin\Debug\log4net.xml" target="" />
<file src="bin\Debug\Utilities.dll" target="" />
</files>
</package>
任何解决这个问题的想法,我花了最后几天来解决它但没有运气
注意:当我在我的电脑(我的图书馆 + Log4net)中按位置手动添加参考时,它工作正常!
在 .net 标准中创建 class 库。
有关 .net 标准的更多信息,请访问 https://docs.microsoft.com/en-us/dotnet/standard/net-standard
如何创建 .net 标准 class 库 -> https://docs.microsoft.com/en-us/dotnet/core/tutorials/library-with-visual-studio?tabs=csharp
如何创建 .net 标准 Nuget -> https://docs.microsoft.com/en-us/nuget/quickstart/create-and-publish-a-package-using-visual-studio?tabs=netcore-cli
此图像将帮助您理解共享库背后的概念。