問題タブ [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.
unit-testing - Windows Phone の開発と単体テスト
Windows Phone を対象としたプロジェクトを開始しようとしていますが、ユニット テストのサポートがないため、少し先延ばしにしています [1]。
私は、ほとんどのテスト ニーズに NUnit/XUnit を使用することに慣れており、モックには NSubstitute のようなものを使用しています。私が知る限り、これらのフレームワークを Windows Phone プロジェクトに使用することはできません...
いくつかの調査を行った結果、次のシナリオが機能するかどうか疑問に思っていました。
- Visual Studio 2012 を使用する
- ビュー モデルおよびその他のロジック用のポータブル クラス ライブラリ プロジェクトを作成します。
- 単体テスト用の他のポータブル クラス ライブラリ プロジェクトを作成する
- Windows Phone 8 SDK[2] を待ち、それを使用してビューを作成します。
ポータブル クラス ライブラリを使用することで、エミュレーターをクラック オープンしなくても、単体テストがデバイス上での実行に可能な限り近いものになることを願っています。
もう 1 つの利点は、このソリューションが TFS ビルド環境内で機能することを確認できることです。したがって、テストの実行は CI ビルドの一部です...
これが賢明な動きなのか、それともばかげた用事なのかについて、人々の意見を評価したいと思っていました...
ありがとう、
キーロン
[1] そこに解決策があることは知っていますが、完全なフレームワーク テストほど統合されているように見えるものはありません。具体的には、エミュレーターを必要とせずに単体テストを実行するための VS2012/Resharper でのサポートについて話しています。
[2] WP8 SDK を使用して Windows Phone 7.x をターゲットにできるかどうか知っている人はいますか?
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.INotifyCollectionChanged
PCLがshimタイプ転送DLL(https://github.com/slodge/MvvmCross/tree/vnext/Cirrious/System.Windowsなど)で提供されていることと、明らかにMicrosoftのを使用してDLLに署名できないことです。秘密鍵。
いくつかの詳細:
- これは、ICommandやINotifyCollectionChangedなどのインターフェイスでよく見られます
- .exeプロジェクトでのみ発生するようです(ライブラリはどういうわけか問題なく動作します)
- 私は主にVS2010とVS2012でテスト/構築しています
- https://github.com/slodge/MvvmCross/issues/41でさらにいくつか
誰かがこれを解決する方法を提案できますか?たとえば、強力なアセンブリ命名保護をオフにする方法はありますか?
PCLがMicrosoftが出荷した.Net実装の外で真にポータブルであるためには、これが必要だと思いますか?
c# - ポータブル クラス ライブラリは .net 3.5 で動作しますか?
私は Windows 8 を実行しており、Visual Studio 2010 Ultimate w/sp1 と Visual Studio 2012 Ultimate の両方を使用しており、.net 3.5 以降をサポートするポータブル クラス ライブラリを作成しようとしています。
最初に PCL を作成しようとすると、次のような画面が表示されます。
.net 3.5 がリストにないことに気付いたので、[追加のフレームワークをインストール]をクリックして、バージョン 3.5 の Targeting Pack を見つけました。しかし、「dotnetfx35setup.exe」をダウンロードして実行しても何も起こりません。VS に戻って新しいポータブル クラス ライブラリを作成しようとすると、以前と同じターゲット フレームワークが一覧表示されます。
また、.NET Framework 3.5 の Windows 機能を有効にしましたが、今はアイデアがありません。他に何か見逃した場合のスクリーンショットを次に示します。
ありがとう、
c# - ポータブルクラスライブラリを使用した部分クラス
クラスライブラリをPortableClassLibraryに移植しました。このPortableクラスライブラリは、サーバーコード、WPFアプリケーション、Silverlightの間で共有されています。
移植する前は、Silverlightプロジェクトに、そのアプリケーションにのみ関連するカスタムプロパティをサポートするための部分クラスがありましたが、現在、プロパティを使用して部分クラスを作成できません。
私がそうする場合、VSは部分クラスで定義されたプロパティのみを取得し、ポータブルクラスでは取得しません。
したがって、問題は次のとおりです。ポータブルクラスライブラリで部分クラスを使用することは可能ですか?
sharepoint - .NET 3.5 および .NET 4.5 用の単一の (ポータブル?) ライブラリを使用することは可能ですか?
SharePoint.dll に対して構築された SharePoint 2010/.NET 3.5 をターゲットとする大規模なプロジェクトがあり、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 プロジェクトから参照されたファイルを使用することですか?
.net - どのポータブル クラス ライブラリ プロファイルが相互に参照できるかを調べる
さまざまなポータブル クラス ライブラリ プロファイルのどれが相互に参照できるかをプログラムで解決する方法はありますか (ビジュアル スタジオ内で試してはいけません)。
windows-phone-7 - MvvmCross vNext: PCL での System.IO.Compression の使用
System.IO.Compression 名前空間のメソッドを必要とするモデル コードがいくつかあります。ただし、VSMonoTouch と MonoAndroid も対象とする PCL を使用する場合は存在しません。MvvmCross ソリューションで TypeForwarded になっているものもありますが、同様のプロジェクトを作成するときに、その使用方法を見つけることができないようです。
MonoAndroid ライブラリ プロジェクトを作成し、次の内容の Forward.cs クラスを追加しました。
プロジェクトの名前空間を に設定しましたSystem.IO.Compression
。ViewModels、Services、およびもちろん、他のPCLプロジェクトとアセンブリのみを参照できると言っているモデルコードを使用して、PCLプロジェクトへの参照として追加しようとしています。
私は特に必要GZipStream
であり、それをプロジェクトに追加する方法を見つけることができないようです。
reference - VS2012でポータブルクラスライブラリを構築できません
以前はVS2010でビルドしていたプロジェクトがありますが、現在はVS2012ではビルドしません。次のように構成されています。
最初は自分でうまくビルドしますが、3番目をビルドしようとすると、次のようにThe type or namespace 'Lime49' could not be found
なります。コンソールには次のように表示されます。
私のソリューションには、ポータブルライブラリと.NET 4ライブラリの両方を参照する2つのプロジェクトもありますが、他のプロジェクトがビルドを拒否したため、どちらもビルドされません。ポータブルライブラリを削除して再作成しようとしましたが、別のプロジェクトから参照してもビルドされません。
これは、両方のポータブルクラスライブラリのフレームワークセットアップにあるものです。
c# - ポータブルライブラリから実行時に.netプラットフォームを決定する方法は?
具体的には、ポータブルクラスライブラリコードがSilverlight、WinRT、または.NETで実行されているかどうかを実行時に判別できるようにしたいと考えています。
今の私の最高のアイデアは次のとおりです。
.NETでは「Microsoft®.NETFramework」を返し、Silverlightでは「Microsoft®Silverlight」を返しますが、現時点ではWindows 8で開発していないため、WinRTで区別できるかどうかはわかりません。
だから私はそれがうまくいくかどうか、またはもっと良いアイデアを知りたいです。
xamarin.android - MvvmCross vNext:ObservableColletionは、参照されていないアセンブリで定義されています
PCLモデルをビルドするようになりました。プラグインの作成には少し時間がかかりましたが、Android UIプロジェクトでは、ビルド時に2つのエラーが発生します。
最初のエラーは次のとおりです。
2番目のエラーは次のとおりです。
転送することになっているプロジェクトSystem.Windows
からアセンブリを参照しました。System.Windows.Droid
ObservableCollection<>
エラーが発生する行:
私のViewModelのLocations
プロパティは次のようになります。
複雑すぎず、非PCLモデルで正常に動作します...
では、どうすればこれを回避して修正できますか?