我可以用DNX/DNU建立一个"老派"PCL吗?

Jon*_*eet 38 nuget portable-class-library dnu

Noda Time 1.3.1中,我们的.csproj文件引用了Profile 328,我们的.nu​​spec文件将结果放入

lib\portable-net4+sl5+netcore45+wpa81+wp8+MonoAndroid1+MonoTouch1+XamariniOS1
Run Code Online (Sandbox Code Playgroud)

对于Noda Time 2.0,我已将所有内容移至DNX/DNU(当然很快就会成为dotnet cli).但是,我们现在希望构建一个定期更新的包,其中包含来自IANA的最新时区信息.我们将构建一个版本,依赖于Noda Time 1.3.1,另一个版本依赖于Noda Time 2.0.0.

喜欢到DNX/DNU内做到这一切依然,但它是我不清楚是否有告诉DNX/DNU这个目标框架的任何方式.请注意,我想让1.3.1的所有当前用户都可以使用它,它也依赖于1.3.1,因此我认为目标框架集基本上必须是相同的.

我尝试过的框架:

  • portable-net40 + sl5 + win8 + wpa81 + wp8(根据Nuget文档,我希望有最好的工作机会)
  • 便携式NET4 + SL5 + netcore45 + wpa81 + WP8 + MonoAndroid1 + MonoTouch1 + XamariniOS1
  • Profile328

在每种情况下,都会dnu restore显示以下形式的错误:

"便携式-net40 + SL5 + win8的+ wpa81 + WP8" 是不受支持的框架.

我有一个可怕的怀疑,这基本上不是一个支持的用例,我需要坚持这个特定部分的常规csproj文件,但我认为值得问,看看我是否遗漏了一些东西.

dav*_*owl 35

过去,Xamarin框架存在一些问题,但尝试做这样的事情;

https://github.com/AutoMapper/AutoMapper/blob/93f276fea36dedb2efd861096f881667af880d58/src/AutoMapper/project.json

看看这是否有效:

{
  "frameworks": {
    ".NETPortable,Version=v4.0,Profile=Profile328": {
      "frameworkAssemblies": {
        ...
      }
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

  • 啊啊 - 将它从Version = 4.5调整到Version = 4.0似乎可以解决它.你很高兴我能相应地编辑你的答案吗? (4认同)
  • 这肯定是修复了`dnu restore`.构建现在失败了"依赖fx/System.Runtime无法解决"并且同样适用于mscorlib(显然一切都在那时断开)但我可以单独研究它.谢谢! (2认同)
  • (说实话,我并不太担心Xamarin方面.如果最终工作,这很好 - 如果不是,那就不像我打破他们,他们就不会得到新包装.) (2认同)