最近在研究 CruiseControl.NET NCover 、NUnit 、NAnt 的集成构建,在用 DotNetTools Workflow 0.1.0版(移植自osworkflow的.NET实现版)作为测试例子时,碰到了问题,郁闷了两天,最后总算搞明白问题所在了。

        我在DotNetTools Workflow 源代码-DotNetTools.Test工程中的NAnt脚本中添加了一个Target,用于执行NCover:

Assembly.LoadFrom()与Assembly.LoadFile()方法的困扰  Assembly.LoadFrom()与Assembly.LoadFile()方法的困扰
Assembly.LoadFrom()与Assembly.LoadFile()方法的困扰
Assembly.LoadFrom()与Assembly.LoadFile()方法的困扰
<property name="nunit2.dir"    value="D:\Program Files\DotNet\devTools\NUnit 2.2.2\bin" />
Assembly.LoadFrom()与Assembly.LoadFile()方法的困扰
Assembly.LoadFrom()与Assembly.LoadFile()方法的困扰  Assembly.LoadFrom()与Assembly.LoadFile()方法的困扰
Assembly.LoadFrom()与Assembly.LoadFile()方法的困扰         
Assembly.LoadFrom()与Assembly.LoadFile()方法的困扰    
<target name="ncover" depends="build">
Assembly.LoadFrom()与Assembly.LoadFile()方法的困扰        
<exec 
Assembly.LoadFrom()与Assembly.LoadFile()方法的困扰            
program="D:\Program Files\DotNet\devTools\NCover\NCover.Console.exe" 
Assembly.LoadFrom()与Assembly.LoadFile()方法的困扰            workingdir
="${build.dir}/results" 
Assembly.LoadFrom()与Assembly.LoadFile()方法的困扰            commandline
="/c &quot;${nunit2.dir}/nunit-console.exe&quot; &quot;${build.dir}/bin/${nant.project.name}.dll /xml:${build.dir}/results/${nant.project.name}.dll-results.xml /nologo&quot; /a &quot;${nant.project.name}&quot; /o &quot;${build.dir}/results/${nant.project.name}.coverage.xml&quot;"/>
Assembly.LoadFrom()与Assembly.LoadFile()方法的困扰    
</target>

        然后我在命令行运行该脚本:>nant ncover在NUnit即将运行完成后,出现错误(如下图),但是我直接在NUnit中运行DotNetTools.Test测试工程,并没有错误。

Assembly.LoadFrom()与Assembly.LoadFile()方法的困扰

        经过艰苦的跟踪调试,终于发现问题出在:DotNetTools.Workflow工程中Util\Vsa\VsaBase.cs的Prepared()方法,其Assembly.LoadFile(Path.GetFullPath(assembly))会导致上图所示错误,
Assembly.LoadFrom()与Assembly.LoadFile()方法的困扰  Assembly.LoadFrom()与Assembly.LoadFile()方法的困扰
Assembly.LoadFrom()与Assembly.LoadFile()方法的困扰
Assembly.LoadFrom()与Assembly.LoadFile()方法的困扰            
if (config!=null)

        原来Assembly.LoadFile()方法内部需要对assembly进行严格的安全权限检查。

        在我试过强签名,安全策略等等一系列方法后,问题仍然存在,又郁闷了一天...Assembly.LoadFrom()与Assembly.LoadFile()方法的困扰

        今天偶然在发现cnblogs上发现

       

相关文章:

  • 2022-12-23
  • 2021-12-20
  • 2022-02-16
  • 2022-03-03
  • 2022-12-23
  • 2021-06-23
  • 2021-07-15
  • 2022-03-05
猜你喜欢
  • 2021-07-25
  • 2021-06-17
  • 2022-12-23
  • 2021-05-18
  • 2021-10-25
  • 2022-01-02
  • 2021-11-28
相关资源
相似解决方案