我在我的解决方案中添加了一个新的类库(包)项目。这是我第一次使用.NET Core(或者我使用的任何东西,仍然感到困惑)
我的类库包含两个引用:.NET Framework 4.5.1和.NET Platform 5.4
我正在尝试从使用IPrincipal
的示例项目中导入一些代码。由于某种原因,它说它在命名空间“System.Security”中不存在altohugh我可以通过intellisense得到它。
我的项目设置有什么问题?
答案 0 :(得分:2)
.NET Core和类库(Package)的新功能是它针对多个平台,并将编译成多个程序集,这些程序集会自动打包到nuget包中。
当您的类库以多个目标为目标时,它将编译为所有目标。因此,如果某个库仅在完整的.NET框架上可用,而在.NET Core或其他目标框架上不可用,那么如果您的编辑器设置为.NET 4.5,则可能会收到智能感知。更多信息可以在我最近的其他answer中找到。
您可以使用编码窗口左上角的下拉菜单来回切换,如下面的屏幕截图所示。
如果您不想定位某个框架,则必须从project.json文件中删除它的名字对象,或使用预处理程序指令编写特定于平台的代码或库/替换。
.NET Core经过大量模块化,大多数核心模块都在默认项目中引用,如果您需要额外的模块,则需要在dotnet5.x
部分中引用它们。
基本上你有多个地方有"依赖"在您的project.json中,这是一个全局的项目,您可以在其中添加所有目标框架上可用的依赖项,并在每个框架内添加一个依赖项。仅针对每个目标的部分。
答案 1 :(得分:1)
虽然另一个答案涵盖了一些基本概念,但需要注意哪些类可用而哪些不可用。
Microsoft在http://packagesearch.azurewebsites.net临时托管网站以提供帮助。
如果您可以从那里找到合适的RC1包,则可以将其添加到project.json文件中。如果没有,您将必须有条件地将其编译为桌面配置文件或使用其他替代方案。