Visual Studio 2012中的对象浏览器为Portable类库提供了两个不同的组件集:
当我创建可移植类库时,它使用.NET Portable Subset.什么是第二套,我该如何使用它?它包含在.NET Portable Subset中不可用的 MEF .
最近我们开始研究一个新项目,其中包括Windows 8 Metro,Windows Phone和桌面应用程序的客户端.决定使用MVVM模式作为主要架构,因为在项目之间共享ViewModel对我们来说是更可接受的解决方案.
我们决定为此目的使用可移植类库,但问题是在我们尝试添加对适当库的引用后,从Visualstudio 2012扩展库下载并安装SQLite for Windows运行时,我们根本看不到这些库.这让我们想到,在Portable类库项目中不可能使用SQLite.
也许你已经完成了一些并且知道我们实现这种功能的方式?请提供正确的方法来开发此任务,因为使用SQLite并且在开发的这个阶段具有可重用的代码非常重要
我在最终用户机器上遇到装配解决问题,我相信它与使用便携式类库有关....
我有一个最初用Visual Studio 2010编写的.NET 4.0应用程序.最近我们升级到Visual Studio 2012,我们创建了一些可移植类库的项目.我不认为我们现在需要这些功能,但我们也在构建可能从这些库中受益的Windows 8 Store应用程序.
当我编译项目时,便携式库功能到底有什么作用?我希望它允许我在不修改或重新编译的情况下在不同的框架上运行它.
当我在反射器 dotPeek中查看库时,它将Platform属性显示为:
.NETPortable,版本= 4.0版,档案=规范5
参考文献似乎是2.0-ish:
mscorlib,版本= 2.0.5.0
系统,版本= 2.0.5.0
System.Runtime.Serialization,Version = 2.0.5.0
当我在这个最终用户的机器上运行应用程序时,我在日志文件中看到一个错误:
无法加载文件或程序集,'System.Core,Version = 2.0.5.0 ......'
谷歌搜索System.Core 2.0.5.0似乎是指SilverLight - 它似乎是目标框架之一.
本机没有安装Visual Studio,但有.NET 4.0(4.0.3更新)
有什么我应该做的不同编译,我应该调查我的依赖项或我应该在最终用户机器上安装的东西?2.0.5.0引用了什么?
我正在将现有的.NET类库移植到可移植类库..NET库广泛使用ICloneable接口,该接口未包含在可移植子集中.
通常,我在.NET类库中遇到类似这样的类定义:
public class Foo<T> where T : ICloneable
{
public void Bar(T item) {
var x = item.Clone();
...
}
}
Run Code Online (Sandbox Code Playgroud)
如何将此代码成功移植到可移植类库中,我该怎么办?我是否必须重写Clone方法调用,或者是否有较少侵入性的解决方法?
我不能简单地删除泛型类型约束,where T : ICloneable因为该Bar方法将无法编译.
我可以编写一个替换接口来代替ICloneable在移植代码中使用:
public interface IPCLCloneable {
object Clone();
}
Run Code Online (Sandbox Code Playgroud)
只要我只实现Foo<T>了实现的类,这就可以工作IPCLCloneable,但是它不能用于实现的核心库中的类型ICloneable,例如Array:
var x = new Foo<int[]>(); // Compilation error in PCL library
Run Code Online (Sandbox Code Playgroud)
(为了完整起见,应该指出ICloneable接口未在可移植子集核心库中显式实现,因为它不存在,但该object Clone()方法确实存在于可移植子集Array类中,因此对于数组实现,例如int[].)
我还有其他选择吗?
我在Xamarin有一个针对Android,iOS和Windows手机的项目.我用核心(PCL库)在不同平台之间共享公共代码.我在我的核心库中添加了资源文件(.net资源).Resx,并在我的一个ViewModel中读取了我在以下代码片段中使用的特定于文化的字符串:
public string GetString()
{
// CommonResources is the name of my resource file
ResourceManager resManager = new ResourceManager(typeof(CommonResources));
return resManager.GetString("LoginLabel",CultureInfo.CurrentCulture);
}
Run Code Online (Sandbox Code Playgroud)
"LoginLabel"是我的资源键,其值为"登录"(英文)和荷兰语中的"inloggen".
我在我的PCL项目中为英语和荷兰语创建了两个资源文件CommonResources.
CommonResources.resx
CommonResources.nl-NL.resx
在android,iOS和windows手机中,我将文化设置如下:
Thread.CurrentThread.CurrentCulture = new System.Globalization.CultureInfo("nl-NL");
Thread.CurrentThread.CurrentUICulture = new System.Globalization.CultureInfo("nl-NL");
Run Code Online (Sandbox Code Playgroud)
这适用于Android和Windows手机.
但对iOS来说它不起作用.它总是从英文文件返回资源字符串.文化已正确设置,并以调试模式显示.但不知何故,它无法从荷兰资源加载资源字符串.
所以问题是,可以使用PCL为所有平台本地化字符串(.Net方式)吗?有谁有任何想法?提前致谢.
c# localization xamarin.ios xamarin.android portable-class-library
我知道这看起来很基本,但我花了几个小时看文档和视频,似乎无法找到答案.对不起,如果我是一个doof.
Windows 8 App Store开发和Windows 8 Phone开发之间有区别吗?我不确定我是否需要在两个UI上进行测试?
Ĵ
我正在尝试构建一个面向.NET,Silverlight,Windows RT和Windows Phone 的便携式类库,它充当OData客户端.我正在使用Visual Studio 2012.
当我创建对我的OData服务器端的服务引用时,我收到以下错误消息:
无法向指定的OData源添加服务引用,因为未为此目标框架安装WCF数据服务.要安装受支持的WCF数据服务版本,请参阅 http://go.microsoft.com/fwlink/?LinkId=253653.
当我转到错误消息中列出的URL时,我可以选择用于Windows RT的库和用于Windows Phone的库,因此这似乎不适用于可移植类库.
有没有任何秘密的解决方法,或者我是否必须使用裸HTTP请求编写我自己的Odata客户端代码?
此外,如果我必须使用裸HTTP请求,是否至少有一些我可以为json或xml序列化/反序列化构建的API在可移植类libarary中工作?
谢谢,
阿德里安
我正在尝试使用TeamCity/MSBuild构建我的解决方案.这是一个WebAPI项目,它在PCL中与移动客户端共享一些实体.
我看到有一些警告要在构建服务器上安装PCL引用库,我认为我已经排序(在构建服务器中构建可移植类库项目失败)
但是,我在构建可移植类库时遇到错误,如下所示:
[11:20:49][Doctrina.Pcl.Entities\Doctrina.Pcl.Entities.csproj] _GetSdkToolPaths
[11:20:49][_GetSdkToolPaths] GetSdkPropertyValue
*[11:20:49][GetSdkPropertyValue] C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v14.0\AppxPackage\Microsoft.AppXPackage.Targets(975, 5): error APPX3212: SDK root folder for 'Portable 7.0' cannot be located. See http://go.microsoft.com/fwlink/?prd=12560&pver=1.0&plcid=0x409&ar=MSDN&sar=PlatformMultiTargeting&o1=Portable&o2=7.0 for more information.*
"帮助"链接没有任何用处,并且在寻找任何解决方案方面似乎都非常具有谷歌抗性.
我根本没有在构建服务器上安装Visual Studio 2015,但我已经安装了PortableClassLibrary工具,从我的本地PC上复制了参考目录等,根据其他相关的SO问题.
请帮忙?
我目前正在构建一个基于Xamarin的移动应用程序.对于该项目,我创建了一个框架4.5的PCL项目.我使用VS 2013作为开发IDE.现在我想为此PCL添加WCF服务引用.在为此PCL项目添加服务引用时,我注意到禁用了异步操作的生成.请查看图像以获取更多详细信息.

我通过Nuget将BCL.Async包添加到项目中.但我仍然无法从radiobutton列表(禁用)访问基于任务的操作.
那么有没有办法在服务客户端生成基于任务的异步操作?
wcf asynchronous portable-class-library xamarin xamarin.forms
嗨,我需要知道Windows 10/8/8.1和iOS中的屏幕密度.我使用DisplayMetrics在Android中获得了屏幕密度,但我发现在UWP和iOS中没有这样的选项/属性.那么在UWP和IOS中是否有任何可以获得屏幕密度的属性.
c# ×4
.net ×2
windows-8 ×2
xamarin.ios ×2
.net-4.0 ×1
api ×1
asynchronous ×1
generics ×1
icloneable ×1
interface ×1
localization ×1
mef ×1
msbuild ×1
odata ×1
sqlite ×1
teamcity-9.0 ×1
uwp ×1
wcf ×1
winrt-xaml ×1
xamarin ×1