gpt4 book ai didi

c# - 无法解析对程序集 'PostSharp' 的依赖性,因为它尚未预加载

转载 作者:太空狗 更新时间:2023-10-29 21:13:05 26 4
gpt4 key购买 nike

我的项目结构

  • A.dll,通过 NuGet 安装并使用 PostSharp。
  • B.exe,它引用 A 并且不使用 PostSharp。

编辑:我创建了一个测试解决方案以查看是否可以重现问题,错误消失了,所以它似乎是原始项目中的其他一些构建时过程。我还不知道是什么。


我的问题

目前这会导致 B 的编译错误。

Unknown build error, 'Cannot resolve dependency to assembly 'PostSharp, Version=3.0.40.9, Culture=neutral, PublicKeyToken=b13fd38b8f9c99d7' because it has not been preloaded. When using the ReflectionOnly APIs, dependent assemblies must be pre-loaded or loaded on demand through the ReflectionOnlyAssemblyResolve event.'

将 PostSharp 安装到 B 会导致新的警告。

The module 'B.exe' does not contain any aspect or other transformation. For improved build-time performance, consider disabling PostSharp for this module by setting the compilation symbol (aka constant) 'SkipPostSharp' in your project, or set the MSBuild property 'SkipPostSharp=True'.

如果我在项目属性中禁用 PostSharp,我现在会收到此错误。

#error: 'PostSharp is not introduced in the build process. If NuGet just restored the PostSharp package, you need to rebuild the solution.'

这来自 RequiresPostSharp.cs,它安装在每个 PostSharp 项目中。


我的目标

我需要消除所有错误和警告。


我提出的解决方案

我想如果我能消除第一个错误和将 PostSharp 添加到 B 的需要,一切都会好起来的。虽然我不知道如何修复它。


我的问题

  1. 将 PostSharp 安装到 B 并修复第一个错误的正确/推荐解决方案是什么?
  2. 如果是这样,我该怎么做?如果不是,我将如何找到合适的解决方案?

最佳答案

当项目 BWPF 应用程序 时,可以重现所描述的构建错误。在这种情况下,问题将由 XAML 编译器引起 - 它会尝试加载您的依赖项 (A) 引用的程序集,如果不成功则失败。

为避免构建错误,您还需要将 PostSharp 引用添加到您的 B 项目。当然,您随后会收到上述警告消息。

从版本 3.1 开始,PostSharp 不再将 RequiresPostSharp.cs 文件添加到您的项目中,而是在 msbuild 脚本中执行验证。因此,您可以安全地在项目 B 属性中禁用 PostSharp。这样您就可以避免错误和警告消息。

关于c# - 无法解析对程序集 'PostSharp' 的依赖性,因为它尚未预加载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19823460/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com