我正在尝试使用.NET Core编写一个插件系统,我的一个要求是能够将插件DLL及其依赖项分发给用户进行安装.但是,我无法弄清楚如何将我的NuGet依赖项包含为构建工件并将它们输出到构建文件夹,而不必将其dotnet publish用作hack.有什么方法可以在csproj中指定它吗?
我将Microsoft.AspNetCore从2.0.3升级到2.0.5,而我的WebAPI项目虽然在本地成功运行,却无法在生产(IIS)中启动.在升级之前,生产中的一切都很好.日志目录中生成的错误消息如下:
Error:
An assembly specified in the application dependencies manifest (MyProject.WebAPI.deps.json) was not found:
package: 'Microsoft.AspNetCore.Mvc.Abstractions', version: '2.0.2'
path: 'lib/netstandard2.0/Microsoft.AspNetCore.Mvc.Abstractions.dll'
This assembly was expected to be in the local runtime store as the application was published using the following target manifest files:
aspnetcore-store-2.0.5.xml
Run Code Online (Sandbox Code Playgroud)
有人可以向我解释这究竟意味着什么的细节吗?我认为它的版本不匹配,但为什么会发生这种情况?我认为NuGet包的最新稳定版本不应该有这样的问题.
我能够通过将Microsoft.AspNetCore.All从2.0.5降级到2.0.3来解决这个问题,但是我想找到一个更好的解决方案来解决这个问题,这样我就可以使用这个软件包的最新版本了.
upgrade nuget-package asp.net-web-api2 .net-core asp.net-core
我有几个项目的通用实用程序项目,其中包含一些基本测试类、帮助程序类等。项目定义如下所示:
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup Label="Globals">
<SccProjectName>SAK</SccProjectName>
<SccProvider>SAK</SccProvider>
<SccAuxPath>SAK</SccAuxPath>
<SccLocalPath>SAK</SccLocalPath>
</PropertyGroup>
<PropertyGroup>
<TargetFrameworks>net461;netstandard2.0</TargetFrameworks>
<RootNamespace>SomeRoot.Util</RootNamespace>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="FluentAssertions" Version="5.10.2" />
<PackageReference Include="xunit" Version="2.4.1" />
</ItemGroup>
</Project>
Run Code Online (Sandbox Code Playgroud)
我假设由于它引用了 xUnit,因此 Visual Studio 和命令都dotnet test将其视为测试项目。但由于它不是,我想以某种方式阻止视觉工作室,并且dotnet test不将该项目识别为测试项目。
删除对 xUnit 的引用不是一个选项,因为基类需要 xUnit 包中的一些接口。
.net-core ×2
c# ×2
asp.net-core ×1
csproj ×1
ms-project ×1
msbuild ×1
nuget ×1
upgrade ×1
xunit ×1