标签: portable-class-library

生成错误:您必须添加对System.Runtime的引用

我正在准备一个全新的ASP.NET MVC 5.1解决方案.我正在添加一堆NuGet包,并与Zurb Foundation等进行设置.

作为其中的一部分,我添加了对内部NuGet包的引用,这是一个可移植类库,我认为这会导致构建服务器出现问题.

TeamCity失败了构建:

"System.Object"类型在未引用的程序集中定义.您必须添加对程序集'System.Runtime,Version = 4.0.0.0的引用

我最初在编译Razor网页时添加了相同或类似错误的修复程序,修复了该修复程序 web.config

<compilation ... >
  <assemblies>
    <add assembly="System.Runtime, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
  </assemblies>
</compilation>
Run Code Online (Sandbox Code Playgroud)

但问题尚未解决.

c# asp.net-mvc portable-class-library

192
推荐指数
6
解决办法
16万
查看次数

什么是便携式类库?

在MSDN上,我Portable Class Library在版本信息下注意到有关a的部分.

请参阅System.Object示例.http://msdn.microsoft.com/en-us/library/system.object.aspx

我做了一个简短的谷歌搜索,找不到任何关于Portable Class Library.这里有谁知道它是什么或在哪里可以找到更多相关信息?

.net portable-class-library

107
推荐指数
3
解决办法
5万
查看次数

.Net Core,Portable,Standard,Compact,UWP和PCL之间的区别?

我听说过

  • .Net核心
  • .Net Portable
  • .Net标准
  • .Net Compact
  • 通用Windows平台
  • 便携式类库

所有这些都被解释为"完整.Net的一个子集,允许您定位多个平台".所以我的问题是

  1. 有什么不同!?
  2. 如果我想编写一个尽可能大的受众群体的库,我需要使用哪一个(或多个)

(我的具体情况:我有一个针对.Net 2.0,.Net 4.5和UWP的库.针对UWP需要创建一个新的VS项目并链接所有现有文件,这是一个巨大的痛苦.现在有人告诉我它没有不适用于PCL,从它的声音我必须再次为.Net标准!?)

.net c# portable-class-library .net-core uwp

46
推荐指数
3
解决办法
6441
查看次数

便携式类库:推荐替代[Serializable]

我正在将.NET Framework C#类库移植到可移植类库.一个反复出现的问题是如何处理使用该[Serializable]属性修饰的类,因为此属性不是可移植类库子集的一部分.相反,可移植类库子集中的序列化功能似乎由DataContractAttribute覆盖.

  • 为了在可移植类库中保留尽可能多的功能,[Serializable][DataContract]属性替换就足够了(暗示所有需要序列化的字段和属性也需要进行修饰[DataMember])?
  • 什么(如果有的话)我无法用这种方法做我可以做的[Serializable]应用?
  • 是否有一种侵入性较小的方法?

鉴于[DataContract][DataMember]使用,我正在考虑改变代码沿着以下行.这种方法有明显的缺陷吗?有没有办法制定同样的东西,而不是那么冗长?

#if PORTABLE
    [DataContract]
#else
    [Serializable]
#endif
    public class SerializableClass : SerializableBaseClass
    {
       ...
#if !PORTABLE
        protected SerializableClass(SerializationInfo info, StreamingContext context)
             : base(info, context)
        {
        }
#endif
        ...
#if PORTABLE
        [DataMember]
#endif
        private Type1 _serializableField;

#if PORTABLE
        [DataMember]
#endif
        private Type2 SerializableProperty { get; set; }

        ...
    }
Run Code Online (Sandbox Code Playgroud)

c# serialization datacontract serializable portable-class-library

43
推荐指数
2
解决办法
3万
查看次数

使用Visual Studio 2012 RC的MVC 4/Razor中的可移植类库?

因为使用Visual Studio 2012 RC,我们在剃刀视图中使用可移植类库(.net 4.5和metro profile)中的类时会得到HttpCompileException.

例外:(德语译成谷歌翻译,对不起)

System.Web.HttpCompileException (0x80004005):     
c:\Users\user\AppData\Local\Temp\Temporary ASP.NET        
Files\root\1995167a\126b7c4d\App_Web_index.cshtml.1fbcdbb1.zaniprm5.0.cs(29):

error CS0012: The type 'System.Object' is not in a referenced assembly is 
defined. Add a reference to the Assembly "System.Runtime, Version = 4.0.0.0, 
Culture = neutral, PublicKeyToken = b03f5f7f11d50a3a" added.   

at
System.Web.Compilation.AssemblyBuilder.Compile()   
System.Web.Compilation.BuildProvidersCompiler.PerformBuild()    
System.Web.Compilation.BuildManager.CompileWebFile(VirtualPath virtualPath)
...
Run Code Online (Sandbox Code Playgroud)

解决方案结构

  • 便携式类库(.net 4.5和metro配置文件)
    • 公共类用户{...}
  • MVC 4(.net 4.5)
    • 对可移植类库的引用
    • 剃刀 - 视图
      • @model用户

由于Visual Studio 2012 RC不再可能添加引用"System.Runtime".

c# asp.net razor portable-class-library .net-4.5

40
推荐指数
1
解决办法
5981
查看次数

Xamarin表单:StackLayout带圆角

我正在使用xamarin表单pcl开发一个应用程序.我需要一个带圆角的stacklayout.我也尝试了圆角容器的框架,但没有可用的角半径属性.我找不到ios,android,uwp,windows 8.1的渲染器.

任何人都可以建议我如何实现所有平台的圆角以及角半径属性的stacklayout. 在此输入图像描述

c# portable-class-library xamarin.forms

39
推荐指数
5
解决办法
4万
查看次数

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

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文件,但我认为值得问,看看我是否遗漏了一些东西.

nuget portable-class-library dnu

38
推荐指数
1
解决办法
1836
查看次数

我可以在Visual Studio Express中加载"有时可移植"的类库项目吗?

对于Noda Time版本1.1,主要目标是构建可移植类库的风格,主要是为了支持Windows Phone和Windows应用商店应用.这意味着失去一些功能,因此我们构建了桌面配置和PCL配置(针对每个调试,发布和"签名发布").

为避免必须使用umpteen项目文件,所有6个配置都存在于同一个项目文件中.该项目文件被定制为生成一个名为"便携性"属性,该属性设置为"PCL"或"桌面",就像这样:

<!-- Set the custom Portability property based on configuration -->
<PropertyGroup>
  <Portability Condition="'$(Configuration)' == 'Debug Portable'">PCL</Portability>
  <Portability Condition="'$(Configuration)' == 'Release Portable'">PCL</Portability>
  <Portability Condition="'$(Configuration)' == 'Signed Release Portable'">PCL</Portability>
  <!-- Default to desktop if not explicitly set above -->
  <Portability Condition="'$(Portability)' == ''">Desktop</Portability>
</PropertyGroup>
Run Code Online (Sandbox Code Playgroud)

然后,我们根据上述属性为便携式和桌面式设置了单独的属性组.这是项目类型什么定义为"类库"或"便携式类库"(带沿OutputTypeLibrary,这是共享的):

<!-- Desktop-specific properties -->
<PropertyGroup Condition="'$(Portability)' == 'Desktop'">
  <TargetFrameworkVersion>v3.5</TargetFrameworkVersion>
  <TargetFrameworkProfile>Client</TargetFrameworkProfile>
</PropertyGroup>

<!-- PCL-specific properties -->
<PropertyGroup Condition="'$(Portability)' == 'PCL'">
  <MinimumVisualStudioVersion>10.0</MinimumVisualStudioVersion>
  <ProjectGuid>{c78f6992-28d7-45c9-a4c1-6eaa649f3247}</ProjectGuid>
  <TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
  <TargetFrameworkProfile>Profile2</TargetFrameworkProfile>
  <ProjectTypeGuids>{786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
</PropertyGroup> …
Run Code Online (Sandbox Code Playgroud)

msbuild visual-studio-express portable-class-library

36
推荐指数
1
解决办法
2717
查看次数

便携式库中的定时器

我在便携式库/ Windows Store中找不到计时器.(定位.net 4.5和Windows Store又称Metro)

有没有人知道如何创建某种计时事件?

我需要一些秒表,所以这应该每秒刷新一次

c# timer portable-class-library microsoft-metro

33
推荐指数
3
解决办法
2万
查看次数

根据请求修改请求标头C#HttpClient PCL

我目前正在使用System.Net.Http.HttpClient进行跨平台支持.

我读到,为每个请求实例化HttpClient对象并不是一个好习惯,并且应尽可能重用它.

现在我在为服务编写客户端库时遇到问题.某些API调用需要具有特定标头,有些必须不包含此特定标头.

似乎我只能操纵将随每个请求发送的"DefaultRequestHeaders".

实际发出请求时是否有一个选项,例如"client.PostAsync()"来修改仅针对特定请求的标头?

(信息:请求可以是多线程的).

提前致谢!

.net c# httpclient request-headers portable-class-library

32
推荐指数
1
解决办法
9359
查看次数