相关疑难解决方法(0)

访问ConfigureServices方法中的IHostingEnvironment

我需要检查ConfigureServices方法当前托管环境名称是否为"开发".

所以使用IHostingEnvironment.IsDevelopment()方法对我来说可能没问题,但与Configure方法不同,我没有IHostingEnvironment env.

asp.net-core

85
推荐指数
3
解决办法
2万
查看次数

如何阻止本地化的 Microsoft.CodeAnalysis.*.resources.dll 文件被 ASP.NET Core 发布?

当我发布一个 ASP.NET Core 3.0 项目时,我得到了一些本地化的文件夹,其中显示的 4 个程序集位于每个文件夹中。我不确定为什么包含这些文件夹和文件。我的包都没有引用CodeAnalysis包。

我添加<PreserveCompilationContext>false</PreserveCompilationContext>了 csproj 文件,但没有帮助。有没有办法排除它们?

在此处输入图片说明

在此处输入图片说明

asp.net-core visual-studio-2019 asp.net-core-3.0

25
推荐指数
3
解决办法
3524
查看次数

.NET核心依赖树

是否可以在.net核心应用程序中查看项目的依赖项?我正在使用Visual Studio 2017 Professional.

目前我在我的网站中引用了以下的金块包csproj.

<ItemGroup>
    <PackageReference Include="Microsoft.ApplicationInsights.AspNetCore" Version="2.0.1" />
    <PackageReference Include="Microsoft.AspNetCore" Version="1.1.2" />
    <PackageReference Include="Microsoft.AspNetCore.Authentication.Cookies" Version="1.1.2" />
    <PackageReference Include="Microsoft.AspNetCore.Authentication.JwtBearer" Version="1.1.2" />
    <PackageReference Include="Microsoft.AspNetCore.Identity" Version="1.1.2" />
    <PackageReference Include="Microsoft.AspNetCore.Mvc" Version="1.1.3" />
    <PackageReference Include="Microsoft.AspNetCore.StaticFiles" Version="1.1.2" />
    <PackageReference Include="Microsoft.EntityFrameworkCore.Design" Version="1.1.2" />
    <PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="1.1.2" />
    <PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer.Design" Version="1.1.2" />
    <PackageReference Include="Microsoft.Extensions.Logging.Debug" Version="1.1.2" />
    <PackageReference Include="Microsoft.VisualStudio.Web.BrowserLink" Version="1.1.2" />
    <PackageReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Design" Version="1.1.1" />
    <PackageReference Include="SimpleInjector.Integration.AspNetCore.Mvc" Version="4.0.8" />
</ItemGroup>
Run Code Online (Sandbox Code Playgroud)

您可以在哪里导航依赖项.

依赖

但它很难找到一个特定的依赖 - 如果你知道你在寻找什么,树就是好的.有没有办法输出依赖程序集的平面列表和那些版本?

.net-core visual-studio-2017

9
推荐指数
3
解决办法
2036
查看次数

Visual Studio 2017本地化发布设置

这应该很简单,但是我还没有找到停止这种情况的方法。Visual Studio发布了许多本地化的DLL-似乎有德国本地化,西班牙本地化,意大利本地化,法国本地化,日本本地化,俄罗斯本地化和韩国本地化。我有一个ASP.NET Web API ODATA应用程序,当我使用Visual Studio 2017发布项目时,这些本地化的dll占用了bin文件夹中的不必要空间。我的应用程序仅需要支持En-US。我该如何进行更改?已发布的bin文件夹的屏幕截图:

在此处输入图片说明

c# localization odata asp.net-web-api2 visual-studio-2017

8
推荐指数
1
解决办法
1633
查看次数

发布时如何定位特定的.NET Core Runtimes?

当我发布我的.NET Core应用程序时,它会输出一个runtimes包含以下子目录的目录:

- publish/runtimes/
   - debian.8-x64/
   - fedora.23-x64/
   - fedora.24-x64/
   - opensuse.13.2-x64/
   - opensuse.42.1-x64/
   - osx/
   - osx.10.10-x64/
   - rhel.7-x64/
   - ubuntu.14.04-x64/
   - ubuntu.16.04-x64/
   - ubuntu.16.10-x64/
   - unix/
   - win/
Run Code Online (Sandbox Code Playgroud)

在我的CI/CD服务器上,我使用以下命令发布我的应用程序:

dotnet publish -c Release -o ..\publish
Run Code Online (Sandbox Code Playgroud)

我在项目文件中的发布设置如下:

  • 目标框架:netcoreapp2.1
  • 部署模式:依赖于框架
  • 目标运行时:win-x64

我只计划在Windows 2016 Server上发布此应用程序,因此runtimes不需要OSX/Linux/Unix 文件夹.更糟糕的是,在某些情况下,这些runtimes文件夹包含dlls导致OSA扫描误报的已知易受攻击.

有没有办法将项目配置为仅输出win运行时文件夹?

更新

我已经尝试了@ahsteele的建议,并且将RID添加到我的csproj文件的输出与我没有指定RID的情况相同.

当我运行CI/CD命令示例时

dotnet publish -c Release -r win10-x86 -o ..\publish
Run Code Online (Sandbox Code Playgroud)

我相信它创建了一个自包含的部署.我的发布目录从55MB变为120MB,从237个文件变为482个文件.

更新2

我已经尝试为发布步骤指定我的启动项目,并且它将运行时目录构建得更紧凑.

这是我正在运行的构建命令:

dotnet publish .\startupProject.csproj -c Release -o ..\publish
Run Code Online (Sandbox Code Playgroud)

这是输出:

- …
Run Code Online (Sandbox Code Playgroud)

build .net-core runtime-identifier

6
推荐指数
1
解决办法
1087
查看次数