我正在尝试创建一个类库,其中将包含WebAPI(使用ASP.NET 5)和消耗性UWP App的通用对象(主要是DTO)。但是,我还没有弄清楚如何创建类库,以便可以从其他两个项目中引用它。
到目前为止我已经尝试过:
首先,我尝试了一个类库(包),可以在Web下找到它。可以从ASP.NET项目中毫无问题地引用这种类型的库,但是当尝试从UWP项目中引用它时,我得到以下消息:
A reference to 'ClassLibrary1' could not be added.
接下来,我尝试了一个类库(Windows Universal),可以在Windows> Universal下找到它。这可以很容易地从UWP项目中引用,但是当尝试从ASP.NET引用时,我得到:
The following projects are not supported as references :
- The project ClassLibrary2 has a target framework that is incompatible or has version higher than the current project and cannot be referenced.
因此:如何创建可在ASP.NET 5项目和UWP项目中使用的类库?
最佳答案
.Net Standard class library
应该被认为是可移植类库的后继者。两者都旨在促进在不同的.Net平台之间共享代码(在这种情况下为模型对象/DTO)。
在Visual Studio 2017中,您现在可以选择.Net Standard类库模板。可以将此类库设置为针对.Net Standard的不同版本。您应该针对的.Net Standard版本取决于您希望在哪个.Net平台之间共享代码。
对于此特定问题,我们希望支持通用Windows平台(UWP)应用程序和Asp.Net Core应用程序。因此,我们应该引用此compatibility table来确定将支持这两个平台的.Net Standard版本。在这种情况下,它将是.Net Standard 1.4
。一旦将类库设置为以.Net Standard 1.4为目标,就可以从UWP和Asp.Net核心项目中添加对类库的引用。
为了更好地理解什么是.Net标准以及它如何促进代码共享,我建议您阅读以下内容:
关于asp.net-core - 引用UWP和ASP.NET 5中的类库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34028887/