我有MyProj.Backend.Contracts.csproj以下可移植类库
project.json:
{
"supports": {
"net46.app": {},
"uwp.10.0.app": {},
"dnxcore50.app": {}
},
"dependencies": {
"Microsoft.NETCore": "5.0.0",
"Microsoft.NETCore.Portable.Compatibility": "1.0.0",
"NuSpec.ReferenceGenerator": "1.4.2"
},
"frameworks": {
"dotnet": {
"imports": "portable-net452+win81"
}
}
}
Run Code Online (Sandbox Code Playgroud)
和nuspec:
<package xmlns="http://schemas.microsoft.com/packaging/2012/06/nuspec.xsd">
<metadata>
<id>MyProj.Backend.Contracts</id>
<version>1.0.0</version>
<dependencies>
<group targetFramework="dotnet">
<dependency id="System.Resources.ResourceManager" version="4.0.0" />
<dependency id="System.Runtime" version="4.0.20" />
</group>
</metadata>
</package>
Run Code Online (Sandbox Code Playgroud)
请注意,我已将NuSpec.ReferenceGenerator添加到我的项目中,将''添加到我的项目json中.
但是,我仍然无法打包我的PCL库:
nuget pack MyProj.Backend.Contracts.csproj
Run Code Online (Sandbox Code Playgroud)
Attempting to build package from 'MyProj.Backend.Contracts.csproj'.
Packing files from 'C:\Projects\MyProj\Backend\Contracts\Dev\bin\Contracts'.
Using ''MyProj.Backend.Contracts.csproj.nuspec' for metadata.
Value cannot be null or an empty string. …Run Code Online (Sandbox Code Playgroud) 我对.Net Core很新,但已经建立了一个有效的Asp.Net核心WebAPI站点 - 现在我想与另一个项目共享一些代码......
我想创建一个可以被其他两个库使用的共享库(PCL) - 它只包含没有其他依赖项的基本类/接口.其中一个消费库是一个针对"netstandard1.6"的新vanilla项目,另一个是针对.Net 4.5.2的旧客户端库(如果必须,我可以将其升级到4.6.x).
我已经圆圈了,我不能让netstandard1.6库引用PCL - 我只是被告知类型丢失了:
错误CS0246:找不到类型或命名空间名称'SomeTypeHere'(您是否缺少using指令或程序集引用?)
名为"ClassLibrary1"的project.json的PCL自动生成为:
{
"supports": {},
"dependencies": {
"Microsoft.NETCore.Portable.Compatibility": "1.0.1",
"NETStandard.Library": "1.6.0"
},
"frameworks": {
"netstandard1.1": {}
}
}
Run Code Online (Sandbox Code Playgroud)
我的消费库project.json是:
{
"version": "1.0.0-*",
"dependencies": {
"NETStandard.Library": "1.6.0",
"Newtonsoft.Json": "9.0.1"
},
"frameworks": {
"netstandard1.6": {
"dependencies": {
"ClassLibrary1": {
"target": "project"
}
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
我怎样才能做到这一点?
编辑07/07/2016:
我已经提供了以下解决方案,它演示了我的设置:https: //github.com/JonnyWideFoot/netcore-prototype 请参阅ExperimentClient :: GetLocationAsync我想在.Net 4.5.2/4.6中使用合同库的位置.x客户端.
.NET Compact Framework引入了可重定向的程序集引用,现在用于支持可移植类库.
基本上,编译器会发出以下MSIL:
.assembly extern retargetable mscorlib
{
.publickeytoken = (7C EC 85 D7 BE A7 79 8E )
.ver 2:0:5:0
}
Run Code Online (Sandbox Code Playgroud)
C#编译器如何理解它必须发出一个可重定向的引用,以及如何强制C#编译器甚至在可移植类库之外发出这样的引用?
注意:这只是一个调试时错误,但非常奇怪.
在运行Debugger并调用方法时,在单独的可移植库中公开,返回ConfiguredTaskAwaitable,我们得到InvalidProgramException.
有2个项目:
PortableClassLibrary(支持.Net 4.5; Windows应用商店; Windows Phone 8),带有1个类:
public class Weird
{
public static ConfiguredTaskAwaitable GetConfiguredTaskAwaitable()
{
return new ConfiguredTaskAwaitable();
}
}
Run Code Online (Sandbox Code Playgroud)ConsoleApplication与代码:
static void Main(string[] args)
{
Weird.GetConfiguredTaskAwaitable();
}
Run Code Online (Sandbox Code Playgroud)ConfiguredTaskAwaitable为ConfiguredTaskAwaitable<T>(通用版本)修复了这个奇怪的问题目前它导致问题导致我无法在调试器下运行我的单元测试.我被迫改变我的"ObjectUnderTest"实现以返回泛型ConfiguredTaskAwaitable<T>,这对于真实项目来说很好,但仍然只是一种解决方法.
有人知道这个错误的原因吗?它绝对与Portable Class Library魔法有关.
c# mstest console-application async-await portable-class-library
是否有人向我解释使用便携式类库而不是使用"添加为链接"的优势是什么?
谢谢
我需要从一个可移植的类库中解析一个路径,然后得到文件名,扩展名,目录名等等.
所有这些方法都很容易从System.IO.Path中访问,但是,这似乎不存在于可移植类库中.是否有这个或其他API的开源替代品可以提供相同的功能?
我想为MonoDroid和MonoTouch创建PCL,共享代码AES加密(RijndaelManaged),但Visual Studio不允许我这样做,而是强迫我添加所有其他框架,消息如下:
将自动选择以下框架,因为它们支持在您选择的其他框架之间可移植的所有可用功能:.NET for Windows Store应用程序,.NET Framework 4.5,Windows Phone 8.
这些框架不支持System.Security.Cryptography命名空间.
MonoDroid和MonoTouch的文件放在C:\ Program Files(x86)\ Reference Assemblies\Microsoft\Framework.NETPortable\v4.5\Profile\Profile78\SupportedFrameworks中,已经包含.NET for Windows Store apps.xml,.NET Framework 4.5.xml,Windows Phone 8.xml.
有人可以建议如何将Mono框架与其他框架隔离,我是否需要新的配置文件或其他内容.
是否可以在可移植类库项目中引用System.Data.Linq?
注意: 我只是想在WP8和WinStore8应用程序之间共享代码[DataContext]
类似于这个被标记为重复的问题(所以我无法直接回答).
我有一个webapi项目,它引用了一个PCL项目.我间歇性地得到了这个DefaultContractResolver错误.
我尝试了其他问题的所有故障排除步骤,主要涉及卸载和重新安装nuget软件包.没有帮助.
我可以在安装了Xamarin的VS 2015中创建不同的类库:
我很想知道每个之间的区别 - 只是一个简短的会做:)
情景
我们的团队目前正在开发一个新项目,我们主要针对多个平台 - 网络和移动(Xamarin).虽然我们决定首先关注MVC Web应用程序,但我们希望创建一个包含所有模型和业务类(逻辑)的项目,以便以后可以在我们的项目中使用它.哪个类库最合适?
c# class-library portable-class-library xamarin visual-studio-2015
c# ×5
.net ×3
.net-4.6 ×1
.net-core ×1
async-await ×1
code-sharing ×1
file ×1
json.net ×1
mstest ×1
nuget ×1
nuspec ×1
path ×1
xamarin ×1
xamarin.ios ×1