netcore1.1プロジェクトを新しいVS2017 / csprojにアップグレードしました。
私のテストプロジェクトでのみ、次のように追加されました。
<PropertyGroup>
<GenerateRuntimeConfigurationFiles>true</GenerateRuntimeConfigurationFiles>
</PropertyGroup>
私はそれがbinディレクトリにこれらのファイルを生成することを発見するためにいくつかの掘り下げを行いました:
ProjectName.Tests.runtimeconfig.json
ProjectName.Tests.runtimeconfig.dev.json
この設定とこれらのファイルは何ですか、なぜそれらが必要なのですか?
なぜそれらは私のテストプロジェクトのためだけに生成されたのですか?
これらは.NETCoreプロジェクトに固有であり、
Microsoft.NETCore.App
。「ホストフレームワークリゾルバー」は、フォルダー内で一致するフォルダーを探しshared
ます(例C:\Program Files\dotnet\shared\Microsoft.NETCore.App\1.1.2
)。複数のランタイムを並べてインストールでき、ホストは実行時にどれを使用するかを知る必要があるため、これは重要ですdotnet myapp.dll
。<ServerGarbageCollection>true</ServerGarbageCollection>
csprojファイルに設定すると、の値runtimeconfig.json
が設定されます。(このプロパティは、Webプロジェクトではデフォルトでtrueに設定されています)additionalProbingPath
たとえば、復元されたパッケージを含むローカルのNuGetキャッシュに設定されます。NuGetパッケージを参照しても、そのdllファイルが出力ディレクトリにコピーされないことに気付いたかもしれません(デフォルト)。ホストは追加のプローブパスを使用して、この場所で参照されているパッケージ/ dllを検索します(実際には、2段階の検索です。deps.json
使用するパッケージをホストに通知し、このプロパティはこのパッケージを検索する場所を通知します)。これは開発にのみ使用され、公開された出力に含まれるべきではないため(これは、ターゲットのNuGetキャッシュに依存することを意味するため)、この設定はに配置されますruntimeconfig.dev.json
。「クラシック」.NETFrameworkプロジェクトには、アプリケーションにいくつかのランタイム設定を設定させるという概念もありました。これは、.exe.config
ファイル(存在するApp.config
場合はプロジェクト内のファイルから構築される)を持つことによって達成されました。あなたはruntimeconfig.json
「新しい.exe.config
」と考えることができますが、いくつかの重複する懸念があるだけです。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加