Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 无法解析对程序集的依赖关系';夏普邮政';因为它没有预加载_C#_.net_Msbuild_Postsharp - Fatal编程技术网

C# 无法解析对程序集的依赖关系';夏普邮政';因为它没有预加载

C# 无法解析对程序集的依赖关系';夏普邮政';因为它没有预加载,c#,.net,msbuild,postsharp,C#,.net,Msbuild,Postsharp,我的项目结构 A.dll,它通过NuGet安装并使用PostSharp B.exe,它引用A,不使用PostSharp 编辑:我创建了一个测试解决方案,以查看是否可以重新创建问题,错误消失了,因此它似乎是原始项目中的其他构建时过程。我还不知道是什么 我的问题 目前,这会导致B的编译错误 未知生成错误,“无法解析对程序集的依赖关系”PostSharp,版本=3.0.40.9,区域性=中性,PublicKeyToken=b13fd38b8f9c99d7,因为它尚未预加载。使用Reflectio

我的项目结构

  • A.dll,它通过NuGet安装并使用PostSharp
  • B.exe,它引用A,不使用PostSharp
编辑:我创建了一个测试解决方案,以查看是否可以重新创建问题,错误消失了,因此它似乎是原始项目中的其他构建时过程。我还不知道是什么


我的问题

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

未知生成错误,“无法解析对程序集的依赖关系”PostSharp,版本=3.0.40.9,区域性=中性,PublicKeyToken=b13fd38b8f9c99d7,因为它尚未预加载。使用ReflectionOnly API时,必须通过ReflectionOnlyAssemblyResolve事件预加载或按需加载依赖程序集。”

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

模块“B.exe”不包含任何方面或其他转换。为了改进构建时间性能,考虑通过设置项目中的编译符号(AKA常量)“SkIPPASTHARP”或设置MSBudid属性“SkIPPASTHARAP= true”。 如果在项目属性中禁用PostSharp,现在会出现此错误

#错误:“生成过程中未引入PostSharp。如果NuGet刚刚恢复了PostSharp软件包,则需要重建解决方案。”

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


我的目标

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


我提出的解决方案

我想如果我能消除第一个错误,并将PostSharp添加到B中,一切都会好起来。但我不知道如何修复它


我的问题

  • 不将PostSharp安装到B并修复第一个错误的正确/推荐解决方案是否正确
  • 如果是,我该怎么做?如果没有,我将如何采取适当的解决方案

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

    为了避免生成错误,还需要将PostSharp引用添加到B项目中。当然,你会收到上面提到的警告信息


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

    即使已经过了几年,这对我仍然有效。谢谢