小编AqD*_*AqD的帖子

自定义.NET可移植类库配置文件?

我需要添加和/或修改配置文件,以允许在PCL中共享更多的类和成员(其中许多是内置于框架中的,如Thread.Sleep).最好的方法是什么?有什么工具可以帮助吗?



PS:我不是在寻求告诉我不要或停止.我想拥有可以在不同环境中共享的一次编译DLL.没有每个平台的二进制文件,没有重新编译,没有ifdef.


以下是我到目前为止所得到的:

需求:

  • 目标环境:Silverlight 5和.NET Framework 4.5.
  • PCL的目的:RIA客户端和ASP.NET服务器共享基础架构(无WCF)
  • 缺省配置文件缺少什么:XPath,Thread方法,DynamicMethod/ILGenerator

PCL配置文件:在Reference Assemblies\Microsoft\Framework.NETPortable下:

  • 所有程序集都是存根,并设置了"Retargetable"属性.
  • 所有程序集都有标志= 0x171:0x001已签名,0x100可重定向,并且在AssemblyNameFlags中未定义0x070(似乎无效)
  • 程序集之间的所有引用都具有"Retargetable"属性.
  • 支持Silverlight的所有程序集都是版本2.0.5.0.
  • 构建的PCL二进制文件包含每个引用程序集的两个引用(例如:mscorlib 2.0.5.0 retargetable + mscorlib 4.0)

定制尝试#1

  • 配置文件:Silverlight 5 + .NET Framework 4.5(配置文件24)
  • 将SL5 mscorlib.dll复制到配置文件24
  • 将SL5 mscorlib.dll标记为可重定向(更改为延迟签名)
  • ReSharper:无法解析所有扩展方法,泛型类型/值匹配错误
  • 构建:成功,运行:成功

定制尝试#2

  • 配置文件:Silverlight 5 + .NET Framework 4.5(配置文件24)
  • 将所有SL5 DLL复制到配置文件24
  • 将所有SL5 DLL标记为可重定向(更改为延迟签名)
  • 将SL5 DLL之间的所有引用标记为可重定向
  • ReSharper:无法解析所有扩展方法,泛型类型/值匹配错误
  • 构建:成功,运行:成功

定制尝试#3

  • 配置文件:Silverlight 4 + .NET Framework 4.0.3(配置文件18)
  • 将SL4 mscorlib.dll复制到个人资料18
  • 将SL4 mscorlib.dll标记为可重定向(更改为延迟签名)
  • ReSharper:成功
  • 构建:成功,运行:成功

定制尝试#4

  • 配置文件:Silverlight 4 + .NET Framework 4.0.3(配置文件18)
  • 将所有SL4 DLL复制到配置文件18
  • 将所有SL4 DLL的.NET运行时版本设置为v4(原始DLL具有该功能,未知的效果)
  • 将所有SL4 DLL标记为可重定向(更改为延迟签名) …

.net portable-class-library reflexil

7
推荐指数
2
解决办法
1769
查看次数

标签 统计

.net ×1

portable-class-library ×1

reflexil ×1