VIsual Studio 2017 NuGet包安装良好但无法识别

时间:2017-06-07 21:11:58

标签: asp.net visual-studio nuget nuget-package visual-studio-2017

我有解决方案A,它有一个.NET Core 1.1类库项目。在Package属性中,我填充了所有NuGet字段,并在成功构建时选择创建NuGet。这个项目构建得很好,并且创建了NUPKG。 BTW如何自动将生成的NUPKG复制到本地目录(我自己的存储库)?

然后我有解决方案B,这是一个ASP.NET Core 1.1 Web应用程序。在其中我浏览到我的本地存储库(我手动复制了解决方案A构建的NUPKG)并将我的SolutionA.MyPackage安装到Web应用程序中。 VS.2017表示它成功安装它。我看到它列在项目的NuGet依赖项中。

但是,当我尝试使用该NuGet包中定义的任何对象时,我得到一个红色突出显示,表示没有找到它,好像没有NuGet或该程序集引用该DLL但是有!

是什么原因导致安装此Visual Studio生成的Nuget包,但其行为就像它甚至没有被引用一样?

更新 - CSPROJ TARGET 至于复制到我的本地存储库,我把它添加到CSPROJ但它没有工作(有人建议它,因为我说它)。我终于弄明白为什么它不起作用, ItemGroup必须在任务内。

  <Target Name="CopyPackage" AfterTargets="GenerateNuspec">
     <ItemGroup>
        <MyPackageFiles Include="bin\Release\PackageId.*.nupkg" />
     </ItemGroup>
     <Copy SourceFiles="@(MyPackageFiles)" DestinationFolder="D:\My Repository\MyNugget\Publish" />
  </Target>

更新NuGet检查 我用NuGet Package Explorer打开了NUPKG,它或多或少地显示了这个:

content\
        Properties\
           launchSettings.json
        Views\
           Shared\
              rest of my stuff here
contentFiles\
   any\
     netcoreapp1.1\
        Properties\
           launchSettings.json
        Views\
           Shared\
              rest of my stuff here
lib\
   netcoreapp1.1 (.NEtCoreApp, Version=v1.1)
         MyPackage.dll

更新3 由于NuGet似乎已经停止工作(以前工作得很好),我选择使用Assembly Reference而不是NuGet(现在)。在这种情况下,发生了一些奇怪的事情,编码时我可以引用引用程序集中的所有对象(以前的NuGet),因此在主项目上没有编译错误但是当我运行Web应用程序时我得到一个内部错误,因为它说

FileNotFoundException: Could not load file or assembly 
'MyPackage, Version=0.0.3.0, Culture=neutral, PublicKeyToken=null'. 
The system cannot find the file specified.

 Unknown location

这很奇怪,因为在解决方案资源管理器中我看到了程序集引用,当我单击它(主应用程序)时,我可以导航到我在该程序集中定义的所有对象。为什么它再也找不到了?

1 个答案:

答案 0 :(得分:1)

它再次起作用(就像之前一样!)。今天我可以打开解决方案但是当我尝试下载扩展程序(工具|扩展程序)时,我收到了一条关于拒绝访问或类似内容的错误消息。它发生在我安装到VS.2017之前。

在2002年以来我使用的所有Visual Studios中,这是最不稳定的! (我有更新15.2)。

当我看到这个错误再次发生时,我知道如何摆脱它并想,“嘿,也许这就是保持NuGet包安装但未找到或直接装配参考的问题”。< / p>

所以我去了 C:\ Users \ AppData \ USER \ Local \ Microsoft \ VisualStudio \ 15.2 *文件夹,完全删除了

之后我的ACCESS DENIED问题因副作用而消失,我不得不再次重新安装所有扩展。我再次尝试安装我自己的NuGet,它成功完成并按预期(在长时间故障期间没有发生)找到了对象并且Web应用程序再次工作。