BuildShadowTask“无法加载文件或程序集”

问题描述 投票:0回答:3

我的解决方案上周五构建得很好。

今天我启动它,收到此错误消息:

无法加载文件或程序集“MyApplication,Version=0.0.0.0,Culture=neutral,PublicKeyToken=null”或其依赖项之一。系统找不到指定的文件。

这在我的智能设备单元测试项目中失败了。

为此我已经谷歌搜索过。虽然其他人我的问题,但我似乎找不到有效的解决方案。

当我双击错误时,它会将我带到 Microsoft.TeamTest.targets。这是有问题的目标:

  <Target Name="ResolveTestReferences" Condition="'@(Shadow)'!=''">
    <BuildShadowTask
        CurrentResolvedReferences="@(ReferencePath)"
        CurrentCopyLocalFiles="@(ReferenceCopyLocalPaths)"
        Shadows="@(Shadow)"
        ProjectPath="$(ProjectDir)"
        IntermediatePath="$(IntermediateOutputPath)"
        SignAssembly="$(SignAssembly)"
        KeyFile="$(AssemblyOriginatorKeyFile)"
        DelaySign="$(DelaySign)">
      <Output TaskParameter="FixedUpReferences" ItemName="ReferencePath"/>
      <Output TaskParameter="NewCopyLocalAssemblies" ItemName="ReferenceCopyLocalPaths"/>
    </BuildShadowTask>
  </Target>

如果我只是构建我的实际项目(而不是测试项目),那么它就可以正常工作。

有什么想法吗?

visual-studio visual-studio-2008 msbuild build
3个回答
3
投票

找到解决方案。

问题在于发布模式、项目引用和复制本地标志。在 Release 中,访问器组件似乎是使用不同的机制构建的,但存在缺陷。

这个缺陷一定是一个错误的假设。默认情况下,项目引用将复制本地标志设置为 true。这意味着没有 XML 节点写入单元测试项目文件以供项目引用。如果我通过将标志翻转为 false 来强制将 XML 节点写入项目文件,然后将其翻转为 true,问题即可解决。

微软的另一项可怕的黑客工作,难怪它在 2012 年被弃用。


1
投票

在“项目依赖项”对话框的解决方案属性窗口中,将单元测试项目的依赖项添加到实际产品项目中。

这应该确保实际产品在单元测试项目之前构建(如果尚未构建)。


0
投票

对我来说,这个问题也与单元测试项目有关。卸载单元测试项目解决了问题。

© www.soinside.com 2019 - 2024. All rights reserved.