【发布时间】:2011-01-05 21:11:50
【问题描述】:
我使用 Fitnesse.NET 已经有一段时间了,现在正尝试升级到更新的 fitSharp 引擎。不过,我立即遇到了障碍。从一个新系统开始,我下载了最新的 Fitnesse.jar 并执行/安装它;然后我的所有测试页面在我的浏览器中都可以正常显示。
当我将 fitSharp 的配置添加到根页面时,就会出现问题。我尝试了设置 TEST_RUNNER 和 COMMAND_PATTERN 的各种组合;最终结果始终是,在执行任何测试时,fitnesse 服务器从未向我的浏览器返回结果。供参考,这里是我的根内容,确认这些变量定义存在且正确,至少根据这个 fitSharp configuration page:
variable defined: TEST_RUNNER=fitSharp\RunnerW.exe
variable defined: COMMAND_PATTERN=%m -r fitnesse.fitserver.FitServer,fitSharp\fit.dll %p
我终于找到了一个 troubleshooting note 提到 RunnerW 提供了一些诊断信息,所以我切换到那个并收到此错误消息,表明这显然是由于 .NET 4 引起的问题:
无法加载文件或程序集 'file:///C:\fitnesse\fitSharp\fit.dll' 或其依赖项之一。手术 不支持。 (例外来自 HRESULT:0x80131515)文件名: 'file:///c:\fitnesse\fitsharp\fit.dll' ---> System.NotSupportedException:尝试加载程序集 从一个网络位置,这将 导致大会成为 在以前版本的沙盒中 .NET 框架。本次发布的 .NET Framework 不启用 CAS 默认情况下的策略,所以这个负载可能是 危险的。如果这个负载不是 旨在对程序集进行沙箱处理, 请启用 loadFromRemoteSources 开关。看 http://go.microsoft.com/fwlink/?LinkId=155569 了解更多信息。
引用的 MSDN 页面说我在我的配置文件中需要这个:
<configuration>
<runtime>
<loadFromRemoteSources enabled="true"/>
</runtime>
</configuration>
所以看起来我有三种可能性。有没有:
- 我可以在其中插入该配置部分的 app.config 或等效项?
- 有一种方法可以阻止 Fitnesse 认为我的本地文件位于远程路径上?
- 为 .NET 框架启用 CAS 策略的方法?
建议将不胜感激!
2010.01.17 编辑:我在我的环境中使用的是 fit 协议而不是 slim 协议。
【问题讨论】: