问题标签 [portable-class-library]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
4 回答
4966 浏览

unit-testing - Windows Phone 开发和单元测试

我正在寻找一个针对 Windows Phone 的项目,但由于缺乏单元测试支持[1],我有点犹豫。

我习惯于使用 NUnit/XUnit 来满足我的大部分测试需求,使用 NSubstitute 之类的东西来进行模拟。据我所知,您不能将这些框架用于 Windows Phone 项目......

经过一些调查,我想知道以下情况是否可行:

  • 使用 Visual Studio 2012
  • 为视图模型和其他逻辑创建可移植类库项目
  • 为单元测试创​​建其他可移植类库项目
  • 等待 Windows Phone 8 SDK[2],然后使用它创建视图。

通过使用可移植类库,我希望单元测试尽可能接近在设备上运行,而无需打开模拟器。

另一个优点是我可以看到这个解决方案在 TFS 构建环境中工作 - 所以运行测试是 CI 构建的一部分......

我希望衡量人们对这是明智之举还是愚蠢的差事的看法...

谢谢,
基龙

[1] 我知道那里有解决方案,但似乎没有一个像完整的框架测试那样集成——我专门谈论的是 VS2012/Resharper 支持在不需要模拟器的情况下运行单元测试。

[2] 有谁知道您是否可以使用 WP8 SDK 以 Windows Phone 7.x 为目标?

0 投票
2 回答
2402 浏览

xamarin.ios - MonoTouch/MonoDroid 中可移植类库强汇编参考问题

PCL 在 MonoTouch 和 MonoDroid 中运行良好。

但是,有时,当我使用变量来引用 PCL 中的类型,然后我尝试在 MonoX 客户端中使用相同的引用时,编译器会失败并显示如下消息:

'System.Collections.Specialized.INotifyCollectionChanged' 类型在未引用的程序集中定义。您必须添加对程序集“System.Windows,Version=2.0.5.0,Culture=neutral,PublicKeyToken=7cec85d7bea7798e,Retargetable=Yes”的引用。

这里的问题是,在 MonoDroid 中,我的System.Collections.Specialized.INotifyCollectionChangedPCL 在 shim 类型转发 DLL 中提供 - 例如https://github.com/slodge/MvvmCross/tree/vnext/Cirrious/System.Windows - 显然该 DLL 无法使用微软的私钥。

更多信息:

  • 这在 ICommand 和 INotifyCollectionChanged 等接口中很常见
  • 它似乎只发生在 .exe 项目中(库以某种方式工作正常)
  • 我主要在 VS2010 和 VS2012 中测试/构建
  • 更多内容:https ://github.com/slodge/MvvmCross/issues/41

任何人都可以提出任何解决此问题的方法吗?例如,有没有办法关闭强大的程序集命名保护?

我认为如果 PCL 要在 Microsoft 提供的 .Net 实现之外真正可移植,这是需要的?

0 投票
3 回答
1893 浏览

c# - 可移植类库是否适用于 .net 3.5?

我正在运行 Windows 8,并且同时拥有 Visual Studio 2010 Ultimate w/sp1 和 Visual Studio 2012 Ultimate,我正在尝试创建一个支持 .net 3.5 及更高版本的可移植类库。

当我第一次尝试创建 PCL 时,我会看到这样的屏幕:PCL 选择画面

我注意到 .net 3.5 不在列表中,所以我单击“安装其他框架”并找到了 3.5 版的 Targeting Pack。但是当我下载并运行“dotnetfx35setup.exe”时,什么也没有发生。当我回到 VS 并尝试创建一个新的可移植类库时,它列出了与以前相同的目标框架。

我还打开了 .NET Framework 3.5 的 Windows 功能,现在没有想法了。这是一个屏幕截图,以防我错过了其他内容。

Windows功能

谢谢,

0 投票
1 回答
609 浏览

c# - 带有可移植类库的部分类

我已经将一个类库移植到 Portable Class Library,这个 Portable 类库在服务器代码、WPF 应用程序和 Silverlight 之间共享,到目前为止一切顺利

在移植之前,我在 Silverlight 项目中有一个部分类来支持仅与该应用程序相关的自定义属性,但现在我无法创建带有属性的部分类。

如果我这样做,VS 只会获取部分类中定义的属性,而不是可移植类中定义的属性。

所以问题是:是否可以将 Partial 类与 Portable 类库一起使用?

0 投票
1 回答
558 浏览

sharepoint - 是否可以为 .NET 3.5 和 .NET 4.5 提供单个(便携式?)库?

我们有一个针对 SharePoint 2010/.NET 3.5 的大型项目,针对 SharePoint.dll 构建,我们计划扩展它以支持 SharePoint 2013,但新的 SharePoint 使用在 .NET 4.5 中编译的 SharePoint.dll。

是否有可能以某种方式在 .NET 3.5 和 .NET 4.5 项目之间共享代码,例如可移植类库,但在 .NET 3.5 和 4.5 之间?或者唯一的解决方案是为 .NET 4.5 启动新项目并使用第一个 .NET 3.5 项目中的引用文件?

0 投票
1 回答
380 浏览

.net - 确定哪些可移植类库配置文件可以相互引用

有没有办法以编程方式(所以不在 Visual Studio 中尝试)各种可移植类库配置文件中的哪些可以相互引用?

0 投票
1 回答
863 浏览

windows-phone-7 - MvvmCross vNext:在 PCL 中使用 System.IO.Compression

我有一些模型代码需要 System.IO.Compression 命名空间中的一些方法。但是,当使用针对 VSMonoTouch 和 MonoAndroid 的 PCL 时,它不存在。我看到 MvvmCross 解决方案中的某些东西是 TypeForwarded,但在创建类似项目时,我似乎无法找到如何使用它。

我创建了一个 MonoAndroid 库项目并添加了一个 Forward.cs 类,其内容如下:

我已将项目的命名空间设置为System.IO.Compression. 尝试将其添加为对我的模型代码的 PCL 项目的引用,其中包含 ViewModel、服务,当然不是它说它只能引用其他 PCL 项目和程序集。

我特别需要GZipStream,但我似乎不知道如何将它添加到我的项目中,所以问题是我该怎么做?

0 投票
1 回答
520 浏览

reference - 无法在 VS2012 中构建可移植类库

我有一个项目,它曾经在 VS2010 中构建,现在不会在 VS2012 中构建。它的结构如下:

第一个可以自己构建,但是当我尝试构建第三个时,我得到The type or namespace 'Lime49' could not be found了控制台显示:

我的解决方案中还有两个项目同时引用了可移植库和 .NET 4 库,由于其他人拒绝构建,这两个项目都没有构建。我已经尝试删除并重新创建可移植库,但是当从另一个项目中引用它们时它们仍然不会构建。

这是我在两个可移植类库的框架设置中所拥有的: 框架配置

0 投票
1 回答
1251 浏览

c# - 如何在运行时从可移植库中确定 .net 平台?

具体来说,我希望能够在运行时确定可移植类库代码何时在 Silverlight、WinRT 或 .NET 上运行

我现在最好的想法是:

在 .NET 上它返回“Microsoft® .NE​​T Framework”,在 Silverlight 上它返回“Microsoft® Silverlight”,但我不确定它是否在 WinRT 上与众不同,因为我目前没有使用 Windows 8 进行开发。

所以我想知道这是否有效或有更好的想法。

0 投票
2 回答
1344 浏览

xamarin.android - MvvmCross vNext:ObservableColletion 定义在未引用的程序集中

我现在要构建我的 PCL 模型,这需要一些时间来制作插件,但是现在在我的 Android UI 项目中,我在构建它时遇到了两个错误。

第一个错误是:

第二个错误是:

我已经System.WindowsSystem.Windows.Droid项目中引用了程序集,它应该是 forward ObservableCollection<>

发生错误的行:

我的 ViewModel 中的Locations属性如下所示:

没有什么太复杂并且在非 PCL 模型中工作正常......

那么我该如何解决这个问题呢?