2010-06-21 127 views
4

我的解决方案上周五修好了。BuildShadowTask“无法加载文件或程序集”

今天我烧了起来,我收到此错误信息:

无法加载文件或程序集“为MyApplication,版本= 0.0.0.0,文化=中性公钥= null或它的一个依赖。该系统找不到指定的文件。

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

我对此有Googled。虽然othershad我的problem,我似乎无法找到一个修复工程。

当我双击错误时,它会将我带到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> 

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

任何想法?

+0

任何成功的解决这个? – 2010-07-07 15:21:41

+0

我不得不深入了解最近的所有更改,并找到导致此问题的缺陷。我不记得现在是什么。 – Vaccano 2010-07-07 17:02:00

回答

0

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

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

+0

唉,那里已经有一个依赖...... – Vaccano 2010-06-21 17:34:06

3

找到解决方案。

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

该缺陷必须是一个不好的假设。默认情况下,项目引用将复制本地标志设置为true。这意味着没有将XML节点写入单元测试项目文件以供项目引用。如果我通过将标志翻转为false来强制将XML节点写入项目文件,则返回true,则问题得到解决。

MS的另一个可怕的黑客工作,难怪这是在2012年被弃用。

相关问题