【问题标题】:Using reflection with class library exported as nuget asp.net core将反射与导出为 nuget asp.net 核心的类库一起使用
【发布时间】:2018-01-29 20:51:41
【问题描述】:

我在 .net core 中创建了一个类库,并在我的本地 nuget 服务器上托管了一个类库。类库包含控制器和一些其他要由反射使用的类。

我在我的 asp.net 核心 MVC 项目中使用了这个类库。通过将其安装为 nuget refrence。现在我的 MVC 项目构建良好,但在运行时我无法找到我的控制器或在类库中定义的其他类。

奇怪的行为当我将我的类库的 dll 复制到我的 MVC 项目 bin\Debug\netcoreapp1.1 目录时,反射开始工作。

当我在 IIS Express 上以调试模式运行我的应用程序并且我在 Visual Studio 2015 上使用 .net core 1.1 时,就会发生这种情况

问题:有没有办法在构建时将 nuget 包提取到 bin\Debug\netcoreapp1.1 中。 问题:我是否需要添加一些配置,以便反射在相应的 nuget 包位置查找 dll。

【问题讨论】:

    标签: reflection visual-studio-2015 asp.net-core asp.net-core-mvc asp.net-core-1.1


    【解决方案1】:

    看看这个答案,它可能涵盖了您正在寻找的内容。

    https://stackoverflow.com/a/38252635/138029

    更新: 您可以尝试将NuGet.config 文件添加到您的项目根目录。

    <?xml version="1.0" encoding="utf-8"?>
    <configuration>
     <packageSources>
       <add key="AspNetVNext" value="https://www.myget.org/F/aspnetcidev/api/v3/index.json" />
       <add key="NuGet" value="https://api.nuget.org/v3/index.json" protocolVersion="3" />
       <add key="Local" value="[PATH_TO_YOUR_NUGET_PACKAGES]" />
      </packageSources>
    </configuration>
    

    顺便说一句,如果该目录是项目根目录的本地目录,您可以将这些本地包提交到源代码管理。这允许 Visual Studio Team Services 等构建工具在构建时自动引用它们。

    【讨论】:

    • 我的情况和上面的情况有点不同。我引用的 Dll 永远不会复制到 bin\Debug\netcoreapp1.1,它们被放置在 C:\Users\myaccountname\.nuget\packages 中。由于 dll 从未复制到 bin\Debug\netcoreapp1.1,因此反射无法找到它们。
    • 您是否有引用该包文件夹的 nuget.config?
    • asp.netcore中有project.json没有nuget.config文件
    猜你喜欢
    • 2018-07-17
    • 1970-01-01
    • 2015-03-07
    • 2019-03-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-10-28
    相关资源
    最近更新 更多