使用Microsoft.VisualStudio.Coverage.Monitor.dll时出现FileNotFoundException

时间:2010-09-12 16:12:11

标签: c# visual-studio-2010 code-coverage

C#console app,引用c:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\PrivateAssemblies\DataCollectors\x86\Microsoft.VisualStudio.Coverage.Monitor.dll

using Microsoft.VisualStudio.CodeCoverage;

namespace ConsoleApplication2
{
    class Program
    {
        static void Main(string[] args)
        {
            Monitor m = new Monitor();
        }
    }
}

对象创建行会抛出FileNotFoundException消息Could not load file or assembly 'Microsoft.VisualStudio.Coverage.Monitor.dll' or one of its dependencies. The specified module could not be found.

知道为什么会发生这种情况以及如何解决?

2 个答案:

答案 0 :(得分:3)

  

或其中一个依赖项

错误消息的相关部分。它依赖于来自同一目录的vspmsg.dll,您必须手动将其复制到bin \ Debug文件夹中。使用Visual Studio独有的私有程序集是相当勇敢的。

答案 1 :(得分:1)

此DLL中有4个引用(这是您在ILDASM.exe中找到的内容):

.module extern **KERNEL32.dll**
.module extern **MSVCR100.dll**
.assembly extern **mscorlib**
{
  .publickeytoken = (B7 7A 5C 56 19 34 E0 89 )                         // .z\V.4..
  .hash = (AF 35 A4 2A B0 0E 9D FC 8A 27 B8 29 E5 56 7D 12   // .5.*.....'.).V}.
           18 84 3C 6B )                                     // ..<k
  .ver 4:0:0:0
}
.assembly extern **Microsoft.VisualC**
{
  .publickeytoken = (B0 3F 5F 7F 11 D5 0A 3A )                         // .?_....:
  .hash = (1B D7 52 11 F8 FD 90 65 01 8A 53 AA 7F 87 91 6D   // ..R....e..S....m
           F8 E3 72 91 )                                     // ..r.
  .ver 10:0:0:0
}

前两个用作C DLL,另外两个用作.NET引用。 请确保您拥有Microsoft.Visual(在GAC中)和MSVCR100.dll(在您的计算机上某处也是路径)。