タグ付けされた質問 「.net-standard」

12
.NET Coreプロジェクトタイプと.NET Standard Class Libraryプロジェクトタイプの違いは何ですか?
Visual Studioには、少なくとも3つの異なるタイプのクラスライブラリを作成できます。 クラスライブラリ(.NET Framework) クラスライブラリ(.NET標準) クラスライブラリ(.NET Core) 最初のものは私たちが長年使用してきたものですが、.NET Standardおよび.NET Coreクラスライブラリタイプをいつ使用するかが、私がずっと混乱していた主な点です。私は最近、さまざまなフレームワークバージョンをマルチターゲットにしてユニットテストプロジェクトを作成しようとしたときに、これに噛まれました。 それでは、クラスライブラリ(.NET Standard)とクラスライブラリ(.NET Core)の違いは何ですか、なぜ両方が存在するのか、そしていつどちらを使用する必要があるのでしょうか。

7
.NET Standardと.NET Core
.NET Standardと.NET Coreの違いについて読みましたが、違いが何なのか、.NET Standardライブラリプロジェクトを選択するタイミングと.NET Coreライブラリプロジェクトを選択するタイミングは本当にわかりません。 .NET Standardは、使用するプラットフォームに関係なく、APIのセットが常に利用可能であることを確認するためのものです(そのプラットフォームが選択した.NET Standardバージョンと互換性がある限り)。私が間違っていない場合、これは、.NET Standardのクラスライブラリを作成し、選択した.NET Standardバージョンと互換性のある任意のプラットフォームで使用できることを意味します。 .NET Coreについては、クロスプラットフォームでの使用も対象としていることを読んだので、.NET Coreライブラリを選択すると、.NET Standardと同じように、多くのプラットフォームでも使用できるようです。 つまり、最後には違いがわかりません。どちらを使用すればよいですか?それらの違いは何ですか?

5
VS2017 .Net標準ライブラリの内部メソッドの単体テスト
現在、.Net Standard 1.6ライブラリを作成して、最新のVisual Studio 2017リリース候補版を試しています。私はコードの単体テストにxUnitを使用しており、VS2017で内部メソッドを引き続きテストできるかどうか疑問に思っていました。 指定したプロジェクトが内部メソッドを表示できるようにするVS2015のすべての行AssemblyInfo.csクラスを使用できることを覚えています [assembly:InternalsVisibleTo("MyTests")] VS2017 .Net StandardプロジェクトにはAssemblyInfo.csクラスがないため、内部メソッドを単体テストできるかどうか疑問に思いましたか?

5
.NET Core 2.0でConfigurationManager.AppSettingsを使用できますか?
私はこのように私の設定ファイルから設定を読み取るメソッドを持っています: var value = ConfigurationManager.AppSettings[key]; .NET Standard 2.0のみを対象とする場合、問題なくコンパイルされます。 これで複数のターゲットが必要になるので、プロジェクトファイルを次のように更新しました。 <TargetFrameworks>netcoreapp2.0;net461;netstandard2.0</TargetFrameworks> しかし今、コンパイルnetcoreapp2.0は次のエラーメッセージで失敗します: Error CS0103 The name 'ConfigurationManager' does not exist in the current context (netcoreapp2.0) 別に、新しい.NET Core 2.0コンソールアプリケーション(今回は.NET Core 2.0のみを対象としています)を作成しましたが、同様にConfigurationManager名前空間の下には何もないようSystem.Configurationです。 .NET Standard 2.0で利用できるので混乱しています。.NETCore 2.0は.NET Standard 2.0に準拠しているため、.NET Core 2.0でも利用できると思います。 何が欠けていますか?


6
ILogger、ILogger <T>、ILoggerFactory、またはILoggerProviderをライブラリに使用する必要がありますか?
これは、AspNet CoreのコンストラクターにILoggerまたはILoggerFactoryを渡すことにいくらか関連している可能性がありますか?ただし、これは特にライブラリの設計に関するものであり、それらのライブラリを使用する実際のアプリケーションがロギングを実装する方法についてではありません。 Nugetを介してインストールされる.net標準2.0ライブラリを作成しています。そのライブラリを使用しているユーザーがデバッグ情報を取得できるようにするには、Microsoft.Extensions.Logging.Abstractionsを使用して標準化されたロガーを挿入できます。 ただし、複数のインターフェイスが表示され、Web上のサンプルコードILoggerFactoryがクラスのctorでロガーを使用および作成する場合があります。ILoggerProviderファクトリの読み取り専用バージョンのように見えるものもありますが、実装は両方のインターフェースを実装する場合と実装しない場合があるため、選択する必要があります。(ファクトリーはプロバイダーよりも一般的です)。 私が見たいくつかのコードは非ジェネリックILoggerインターフェイスを使用しており、同じロガーの1つのインスタンスを共有することもあり、いくつかのコードはILogger&lt;T&gt;ctorを受け取り、DIコンテナーがオープンジェネリック型またはILogger&lt;T&gt;ライブラリのすべてのバリエーションの明示的な登録をサポートすることを期待しています使用します。 今のところ、それILogger&lt;T&gt;は正しいアプローチだと思います。おそらく、その引数をとらず、代わりにNull Loggerを渡すだけの俳優です。このようにして、ロギングが必要ない場合、何も使用されません。ただし、一部のDIコンテナーは最大のctorを選択するため、とにかく失敗します。 私は、私は何の興味なって必要に応じて、まだ適切なログ機能のサポートを可能にしながら、ユーザーのための頭痛の最低額を作成するために、ここでやっています。

15
Visual Studio 2017(.NET Core)での自動バージョン管理
.NETCoreApp 1.1(Visual Studio 2017)でバージョンを自動インクリメントする方法を見つけるために、数時間の大半を費やしてきました。 AssemblyInfo.csがフォルダーに動的に作成されていることを知っています。 obj/Debug/netcoreapp1.1/ 以下の古い方法は受け入れません。 [assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.*")] プロジェクトをパッケージに設定すると、そこにバージョンを設定できますが、これはAssemblyInfo.csファイルのビルドに使用されているようです。 私の質問は、.NET Core(またはそのことについては.NETStandard)プロジェクトでバージョンを制御する方法を誰かが理解していることです。

3
メタパッケージに依存するネットスタンダードライブラリのアプリケーションへの影響は何ですか?
netstandard1.3をターゲットにしたいが、も使用したいクラスライブラリがあるとしますBigInteger。ここに簡単な例があります-唯一のソースファイルはAdder.cs: using System; using System.Numerics; namespace Calculator { public class Adder { public static BigInteger Add(int x, int y) =&gt; new BigInteger(x) + new BigInteger(y); } } 戻るの世界ではproject.json、私は、標的とするnetstandard1.3にframeworksセクション、そして上の明示的な依存関係持ってSystem.Runtime.Numerics、例えばバージョン4.0.1を。私が作成するnugetパッケージには、その依存関係のみがリストされます。 csprojベースのドットネットツールの勇敢な新しい世界(コマンドラインツールのv1.0.1を使用しています)には、を対象とする場合の暗黙的なメタパッケージパッケージ参照があります。これは、明示的な依存関係を必要としないため、プロジェクトファイルが本当に小さいことを意味します。NETStandard.Library 1.6.1netstandard1.3 &lt;Project Sdk="Microsoft.NET.Sdk"&gt; &lt;PropertyGroup&gt; &lt;TargetFramework&gt;netstandard1.3&lt;/TargetFramework&gt; &lt;/PropertyGroup&gt; &lt;/Project&gt; ...しかし、生成されたnugetパッケージはに依存していますNETStandard.Library。これは、私の小さなライブラリを使用するには、そこにすべてが必要であることを示唆しています。 を使用してその機能を無効にしてDisableImplicitFrameworkReferencesから、依存関係を手動で再度追加できることがわかりました。 &lt;Project Sdk="Microsoft.NET.Sdk"&gt; &lt;PropertyGroup&gt; &lt;TargetFramework&gt;netstandard1.3&lt;/TargetFramework&gt; &lt;DisableImplicitFrameworkReferences&gt;true&lt;/DisableImplicitFrameworkReferences&gt; &lt;/PropertyGroup&gt; &lt;ItemGroup&gt; &lt;PackageReference Include="System.Runtime.Numerics" Version="4.0.1" /&gt; &lt;/ItemGroup&gt; …

14
Visual Studio 2017の依存関係で黄色の警告三角形は何を意味しますか?
PCLライブラリを新しい.Net標準ライブラリに変換しました。次に示す依存関係にいくつかの黄色の警告三角形があります。 変換中に、依存関係を含むすべてのnugetパッケージが持ち込まれたため、重複する可能性があります。 黄色の警告三角形が何を表しているかを知るにはどうすればよいですか? 編集 ビルドログ: ビルド中にNuGetがパッケージを復元しないようにするには、Visual Studioの[オプション]ダイアログを開き、[パッケージマネージャー]ノードをクリックして、[ビルド中に不足しているパッケージのダウンロードをNuGetに許可する]チェックボックスをオフにします。NU1605:検出されたパッケージのダウングレード:NUnit 3.8.1から2.6.4。プロジェクトから直接パッケージを参照して、別のバージョンを選択します。 MyProj.UI.Tests-&gt; MyProj.Core.Tests-&gt; NUnit(&gt; = 3.8.1) MyProj.UI.Tests-&gt; NUnit(&gt; = 2.6.4)NU1605:検出されたパッケージのダウングレード:NUnit 3.8.1から2.6.4。プロジェクトから直接パッケージを参照して、別のバージョンを選択します。MyProj.UI.Tests.iOS-&gt; MyProj.UI.Tests-&gt; MyProj.Core.Tests-&gt; NUnit(&gt; = 3.8.1)MyProj.UI.Tests.iOS-&gt; NUnit(&gt; = 2.6.4)NU1605:検出されたパッケージのダウングレード:NUnit 3.8.1から2.6.4。プロジェクトから直接パッケージを参照して、別のバージョンを選択します。 MyProj.UI.Tests.Android-&gt; MyProj.UI.Tests-&gt; MyProj.Core.Tests-&gt; NUnit(&gt; = 3.8.1)MyProj.UI.Tests.Android-&gt; NUnit(&gt; = 2.6.4)

2
docs.microsoft.comの.NETプラットフォーム拡張機能とは何ですか?
Microsoft Docsには、「。NETPlatformExtensions」と呼ばれるフレームワークレベルのナビゲーション要素があります。それはのような最近追加されたAPIのドキュメントが含まれSystem.IO.PipelinesおよびSystem.Threading.Channels例えば、だけでなく、それほど最近でないものも含めて他のAPIの全体の束を。 このコレクションの一部のAPIは、nugetパッケージ(.NetCoreと.NetFrameworkの両方)として利用できますが、他のAPIは利用できないようです。また、現時点では、「。NETPlatformExtensions」などと呼ばれるnugetパッケージはありません。 それで、問題は、このAPIのコレクションが正確に何を表しているのかということです。次のそれぞれとの関係は何ですか。 。ネットフレームワーク .Net Core .Net標準 .Net Framework / .Net Coreでのサポートはどうですか? 最後に、一部のAPIは個別のnugetパッケージとしてすでに利用可能であるように見えますが、他のAPIはまだ利用可能になっていないので、その点での話は何ですか?

1
UWP ServicePointManager.ServerCertificateValidationCallback
ServicePointManager.ServerCertificateValidationCallbackクラスとメソッドを利用して証明書のピン留めを実装するXamarin.Formsアプリがあります。AndroidとiOSでは、これは問題なく機能し、証明書キーが固定されている予想されるサービスへの接続を許可し、私が持っていないサービスへの接続を許可しません。 ただし、UWPでは、証明書キーが固定されているかどうかに関係なく、すべての接続が許可されます。証明書の検証メソッドから明示的にfalseを返しましたが、接続はまだ許可されています。証明書の検証方法をデバッグしてステップ実行したため、チェックが実行されていると確信しています。 検証チェックからfalseを返しているのに、何が原因で接続が続行されるのですか ServicePointManager.ServerCertificateValidationCallback = ValidateServerCertficate; private static bool ValidateServerCertficate( object sender, X509Certificate certificate, X509Chain chain, SslPolicyErrors sslPolicyErrors ) { return false; }
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.