我的项目结构
- A.dll,它通过 NuGet 安装了 PostSharp 并使用它。
- B.exe,它引用 A 并且不使用 PostSharp。
编辑:我创建了一个测试解决方案以查看是否可以重新创建问题,并且错误消失了,因此它似乎是原始项目中的其他构建时过程。我还不知道是什么。
我的问题
目前这会导致 B 的编译错误。
未知的构建错误,'无法解析对程序集'PostSharp,版本 = 3.0.40.9,文化 = 中性,PublicKeyToken = b13fd38b8f9c99d7'的依赖,因为它尚未预加载。使用 ReflectionOnly API 时,必须通过 ReflectionOnlyAssemblyResolve 事件预加载或按需加载依赖程序集。
将 PostSharp 安装到 B 会导致新的警告。
模块“B.exe”不包含任何方面或其他转换。为了提高构建时性能,请考虑通过在项目中设置编译符号(又名常量)“SkipPostSharp”或设置 MSBuild 属性“SkipPostSharp=True”来禁用此模块的 PostSharp。
如果我在项目属性中禁用 PostSharp,我现在会收到此错误。
#error: 'PostSharp 未在构建过程中引入。如果 NuGet 刚刚恢复了 PostSharp 包,则需要重新构建解决方案。
这来自 RequiresPostSharp.cs,它安装在每个 PostSharp 项目中。
我的目标
我需要消除所有错误和警告。
我提出的解决方案
我想如果我能消除第一个错误以及将 PostSharp 添加到 B 的需要,一切都会好起来的。我不知道如何解决它。
我的问题
- 不将 PostSharp 安装到 B 并修复第一个错误是正确/推荐的解决方案吗?
- 如果是这样,我该怎么做?如果没有,我将如何寻求正确的解决方案?