【问题标题】:Reference DLL from NuGet folder inside ASP.NET Core project on full .NET framework从完整 .NET 框架上的 ASP.NET Core 项目内的 NuGet 文件夹中引用 DLL
【发布时间】:2017-05-08 11:29:25
【问题描述】:

我创建了一个针对完整 .NET 4.6 框架的新 ASP.NET Core 项目。所以本质上我想要的是使用新的 .csproj 格式和新的 dotnet 工具创建一个 ASP.NET Core Web 应用程序,但仍然以完整框架为目标,因为我们有许多依赖项无法快速移植到 .NET Core。

有些 NuGet 包包含许多 DLL,但在添加 PackageReference 后,它只会将一个 DLL 复制到 Web 应用程序的 bin 文件夹中。我需要手动引用的其他 DLL。

例如:

<ItemGroup> <Reference Include="CustomDll"> <HintPath>..\packages\CustomPackage\version\lib\CustomDll.dll</HintPath> </Reference> </ItemGroup>

现在的问题是,对于新的工具和 NuGet 版本,解决方案路径下没有包文件夹。它通常位于.nuget\packages\... 下的我的用户文件夹中。

是否有可以与新 MSBuild 一起使用的宏来引用全局 nuget 文件夹或我可以更改的设置,以便构建实际上复制解决方案目录下的所有 NuGet 包?

【问题讨论】:

    标签: c# asp.net .net asp.net-core msbuild


    【解决方案1】:

    看起来 NuGet 包中的 dll 直接放置在 lib 文件夹中,而不是 lib\net45,在这种情况下将启用自动工具。 (NuGet 包可能是手动组装的)。

    作为一种解决方法,您可以将HintPath 设置为$(NuGetPackageRoot)the.package.name\1.0.0\lib\the.dll

    【讨论】:

    • 似乎在最新的 .NET Core SDK 中 $(NuGetPackageFolders) 已被删除,但 $(NuGetPackageRoot) 可以代替!
    • 已更新。应该一直是NuGetPackageRoot
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-02
    • 1970-01-01
    • 2016-09-20
    • 2021-04-01
    • 2016-11-18
    • 1970-01-01
    相关资源
    最近更新 更多