我的解决方案中有一个SDK项目。我需要添加一个NuGet包("customLib.net"),它提供了查找文件之间差异的功能。
如果您创建了一个简单的.Net Framework4.7.2控制台应用程序并将这个NuGet添加到其中,那么它将自动下载它以及所有依赖项,包括"customLib.redist.windows.x64“。据我所知,"customLib.net.dll“是.net的API,而"customLib.dll”(来自"customLib.redist.windows.x64“包)是一个引擎本身,是为win-x64编译的。包存储在SolutionFolder/ package中。并且有一个包含所有必需引用的package.config文件。一切都如期而至。
但是,如果要将相同的NuGet包添加到SDK (类库)项目中,该项目具有相同的目标:.Net Framework4.7.2,它还应该与所有依赖项一起下载NuGet包。而且确实如此。但是它没有将包存储在SolutionFolder/packages文件夹中,并且没有任何package.config文件。它将它们存储在C驱动器上的全局NuGet存储中。问题是,当我启动应用程序时,会在运行时中抛出一个异常。
"Unable to load DLL 'customLib': The specified module could not be found.".
输出文件夹中不存在此dll。我通过将"customLib.redist.windows.x64“NuGet包下载到项目中解决了这个问题,尽管"customLib.net”已经有了对这个包的引用。这对我来说有点奇怪,,下面是一些问题:
的完整路径)之后,复制两个NuGet
发布于 2021-11-23 01:26:38
根据描述,我可以假设您有.NET标准控制台应用程序,但是您在其中添加了.Net核心类库。这就是为什么你要面对这样的问题。
因为在.NET核心库项目中,没有package.config文件,引用直接添加到csproj文件中。以及下载到用户目录的软件包,而不是packages文件夹。
因此,您需要将.Net标准类库添加到项目中,而不是添加.NET核心库。
要了解更多关于它的信息,请参阅What is the difference between .NET Core and .NET Standard Class Library project types?
https://stackoverflow.com/questions/70077519
复制