ローカライズされたMicrosoft.CodeAnalysis。*。resources.dllファイルがASP.NET Coreによって公開されないようにする方法


8

ASP.NET Core 3.0プロジェクトを公開すると、ローカライズされたいくつかのフォルダーが表示されます。これらのフォルダーには、表示されている4つのアセンブリがあります。これらのフォルダとファイルが含まれる理由がわかりません。どのパッケージもパッケージを参照していませんCodeAnalysis

<PreserveCompilationContext>false</PreserveCompilationContext>csprojファイルに追加しましたが、役に立ちませんでした。それらを除外する方法はありますか?

ここに画像の説明を入力してください

ここに画像の説明を入力してください


ねえ、多分これはあなたが助けることができる stackoverflow.com/a/58298619/9358386
Kinjal Parmar

回答:


4

足場コントローラーに必要なCodeAnalysis.dllへのプロジェクト参照がある場合、公開された出力にファイルを含む多くの言語フォルダーが表示されますMicrosoft.VisualStudio.Web.CodeGeneration.Design。それがプロジェクトに当てはまる場合は、.csprojファイル内のパッケージ参照を変更して、ExcludeAssets="all"

<PackageReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Design" Version="3.0.0" ExcludeAssets="All" />

たとえば、古い*.csprojファイル

<Project Sdk="Microsoft.NET.Sdk.Web">

  <PropertyGroup>
    <TargetFramework>netcoreapp3.0</TargetFramework>
    <UserSecretsId>aspnet-foo-4E53EF45-B3BE-4943-81BE-2449DC5AA2BC</UserSecretsId>
    <BlazorLinkOnBuild>false</BlazorLinkOnBuild>
  </PropertyGroup>

  <ItemGroup>
    <!-- ... -->
    <PackageReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Design" Version="3.0.0"/>
  </ItemGroup>

  <ItemGroup>
    <!-- ... -->
  </ItemGroup>
</Project>

新しいファイル*.csproj

<Project Sdk="Microsoft.NET.Sdk.Web">

  <PropertyGroup>
    <TargetFramework>netcoreapp3.0</TargetFramework>
    <UserSecretsId>aspnet-foo-4E53EF45-B3BE-4943-81BE-2449DC5AA2BC</UserSecretsId>
    <BlazorLinkOnBuild>false</BlazorLinkOnBuild>
  </PropertyGroup>

  <ItemGroup>
    <!-- ... -->
    <PackageReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Design" Version="3.0.0" ExcludeAssets="All"/>
  </ItemGroup>

  <ItemGroup>
    <!-- ... -->
  </ItemGroup>
</Project>

4
こんにちは、私のアプリケーションはasp net core 3を使用し、* .csproj ExcludeAssets = "All"を追加しましたが、これは機能しませんでした。その他のアイデアはありますか?)
al.koval

@ al.kovalをクリーンアップしてビルドするか、リリースでbinフォルダーを削除して、もう一度ビルドします。
Andrej Lucansky

2
同じ問題が発生します。Microsoft.VisualStudio.Web.CodeGeneration.Designリファレンスを完全に削除しようとしました。まだ展開フォルダーにこのゴミが残っています。binフォルダーexctを削除しています。助けにならない。他にアイデアはありますか?
AliErdoğan

4

私の場合、これらのローカライズされたフォルダーのソースは、パッケージMicrosoft.AspNetCore.Mvc.Razor.RuntimeCompilationからのものでした。Microsoft.CodeAnalysis.Razorに依存しています。パッケージの目的について詳しくは、https//docs.microsoft.com/en-us/aspnet/core/mvc/views/view-compilation?view = aspnetcore-3.1をご覧ください。

パッケージを利用しようとするときに、アセットを単に除外することはできません。私の回避策は、プロジェクトがデバッグモードのときは常に条件付きでパッケージ参照を含めることでした。 条件付きパッケージ参照

次に、#ifプリプロセッサディレクティブを使用して、かみそりランタイムコンパイルを有効にするコードを条件付きで実行しました。 プリプロセッサディレクティブかみそりランタイムコンパイル

注:ビルド後に削除されたフォルダーを表示するには、binフォルダーを削除する必要がある場合があります。また、正しいソリューション構成でビルドしていることを確認してください。

この正確なシナリオを説明するGithubの問題を見つけることができましたが、残念ながら解決されませんでした。https://github.com/dotnet/extensions/issues/2247

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.