c# - 解决方案中的依赖/引用设置问题(未找到程序集/未找到文件)
问题描述
我在解决方案中设置依赖项时遇到问题。
以下解决方案结构:
- LibraryProjectA (.netstandard 2.0) 有一个 NuGet 引用到“system.componentmodel.annotations”/
- LibraryProjectB (.netstandard 2.0) 引用 LibraryProjectA
- ConsoleProject (.NET Framework 4.8) 引用 LibraryProjectA 和 LibraryProjectB
LibraryProjectA 有这个基类:
public abstract class FooConverterBase<T> : IFooConverter<T> {
public T Convert(object input) {
var result = DoConvert(input);
ValidateResult(result);
return result;
}
protected abstract T DoConvert(object input);
private void ValidateResult(T result) {
var validationContext = new ValidationContext(result);
Validator.ValidateObject(result, validationContext, true);
}
}
LibraryB 扩展了该基类public class BarConverter : FooConverterBase<MyObject>
,但是当我尝试BarConverter
在 ConsoleProject 中使用时,我得到一个未找到程序集/未找到文件异常。当我将“system.componentmodel.annotations”作为 NuGet 包直接安装到我的 ConsoleProject 时,我解决了这个问题。
如何设置我的依赖项或 LibraryProjectA.csproj 文件,我不必手动将该包安装到我的 ConsoleProject 中?
当前 LibraryProjectA.csproj:
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>netstandard2.0</TargetFramework>
<LangVersion>latest</LangVersion>
<Nullable>enable</Nullable>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
<GenerateSerializationAssemblies>Auto</GenerateSerializationAssemblies>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="System.ComponentModel.Annotations" Version="5.0.0" />
</ItemGroup>
</Project>
解决方案
推荐阅读
- java - 如何更改 Wifi P2P 设备名称?
- google-cloud-dataflow - 从 Dataflow 2.5.0 SDK 迁移到 Beam 2.13 版本
- python-3.x - s3在计算存储桶中的对象数时超时
- vba - 在 PowerPoint 中使用单选按钮 VBA
- android - 应用被拒绝(React native android app play store 提交)
- reactjs - 使用护照和 axios 访问受保护的控制器时出现 401 未经授权的错误
- docker - 如何在 Gitlab 上要求 Docker 认证的图像?
- c# - 将大型 .txt 文件与值数组进行比较
- r - 依赖于两个文件的编程函数
- java - 无法使用 Java 进程的 gdb 核心反汇编 $PC