在任何使用新的 VS2017 csproj 格式(.NET Core、Standard 或 Framework)的项目上,除非 PostSharp 是直接的 NuGet 依赖项,否则不会将方面编织到代码中。
例如,如果我创建一个依赖于PubComp.Caching.AopCaching的 .NET Core 项目,该项目依赖于 PostSharp,它将允许我使用在 AopCaching NuGet 中定义的方面。该项目将编译,但 PostSharp 方面实际上并未编织到代码中。使其工作的唯一方法是将 PostSharp 作为直接 NuGet 依赖项安装。
我认为这与 msbuild 为新的 csproj 解析 NuGet 依赖项的顺序以及 PostSharp 的 IL 代码编织发生的时间有关。
有谁知道它为什么会发生?除了记住始终安装 PostSharp 之外,还有其他解决方案吗?