我的项目结构
编辑:我创建了一个测试解决方案,看看我是否可以重新创建问题,并且错误消失了,因此它似乎是原始项目中的其他构建时进程。我还不知道是什么。
我的问题
目前,这会导致B的编译错误。
未知的构建错误,'无法解析对程序集的依赖性' PostSharp,Version = 3.0.40.9,Culture = neutral,PublicKeyToken = b13fd38b8f9c99d7'因为它还没有预装。使用ReflectionOnly API时,必须通过ReflectionOnlyAssemblyResolve事件按需预加载或加载相关的程序集。'
将PostSharp安装到B会产生新的警告。
模块' B.exe'不包含任何方面或其他转换。为了提高构建时间性能,请考虑通过设置编译符号(也称为常量)来禁用此模块的PostSharp' SkipPostSharp'在您的项目中,或设置MSBuild属性' SkipPostSharp = True'。
如果我在项目属性中禁用PostSharp,我现在会收到此错误。
#error:'在构建过程中未引入PostSharp。如果NuGet刚刚恢复了PostSharp软件包,则需要重建解决方案。'
这来自RequiresPostSharp.cs,它安装在每个PostSharp项目中。
我的目标
我需要消除所有错误和警告。
我建议的解决方案
我想如果我可以消除第一个错误并且需要将PostSharp添加到B,那么一切都会好的。我不知道如何修复它。
我的问题
答案 0 :(得分:10)
当项目 B 是 WPF应用程序时,可以重现所描述的构建错误。在这种情况下,问题将由XAML编译器引起 - 它尝试加载依赖项引用的程序集( A ),如果不成功则会失败。
为避免构建错误,您还需要将PostSharp引用添加到 B 项目中。当然,您将收到所提到的警告信息。
从版本 3.1 开始,PostSharp不再将 RequiresPostSharp.cs 文件添加到项目中,而是在msbuild脚本中执行验证。因此,您可以在项目 B 属性中安全地禁用PostSharp。这样您就可以避免出现错误和警告消息。