Continuous integration 为什么Gallio似乎需要位于名为GallioBundle-3.1.397.0/bin的文件夹中才能运行

Continuous integration 为什么Gallio似乎需要位于名为GallioBundle-3.1.397.0/bin的文件夹中才能运行,continuous-integration,build-automation,mbunit,gallio,Continuous Integration,Build Automation,Mbunit,Gallio,我想用Icarus和/或Echo运行MbUnit测试,而不必安装Gallio。我已将galiobundle/bin中的所有文件复制到项目文件夹中名为Third Party/MbUnit的文件夹中 当我双击Gallio.Icarus.exe时,它不会加载或执行任何操作 从命令行运行gallio.echo.exe时,出现以下错误: 开始时间:下午1时07分 初始化运行时并加载插件。 停止时间:下午1:07(总执行时间:0.313秒) 错误:发生致命异常。 Gallio.Runtime.Runtime

我想用Icarus和/或Echo运行MbUnit测试,而不必安装Gallio。我已将
galiobundle/bin
中的所有文件复制到项目文件夹中名为
Third Party/MbUnit
的文件夹中

当我双击Gallio.Icarus.exe时,它不会加载或执行任何操作

从命令行运行gallio.echo.exe时,出现以下错误:

开始时间:下午1时07分 初始化运行时并加载插件。 停止时间:下午1:07(总执行时间:0.313秒) 错误:发生致命异常。 Gallio.Runtime.RuntimeException:无法解析服务类型“Gallio.Runner.Projects.ITestProjectManager”的组件,因为似乎没有为该服务类型注册和启用任何组件。 c:\reling\Projects\MbUnit v3.1\Work\src\Gallio\Gallio\Runtime\Extensibility\RegistryServiceLocator.ResolveNondisableDescriptor(类型serviceType)中的at Gallio.Runtime.Extensibility.RegistryServiceLocator.ResolveNondisableDescriptor(类型serviceType):第202行 c:\reling\Projects\MbUnit v3.1\Work\src\Gallio\Gallio\Runtime\Extensibility\RegistryServiceLocator.ResolveImpl(类型serviceType)中的at Gallio.Runtime.Extensibility.RegistryServiceLocator.ResolveImpl(类型serviceType):第161行 在c:\reling\Projects\MbUnit v3.1\Work\src\Gallio\Gallio\Runtime\Extensibility\RegistryServiceLocator.ResolveTService中的Gallio.Runtime.Extensibility.RegistryServiceLocator.ResolveTService:第52行 在c:\reling\Projects\MbUnit v3.1\Work\src\galio\galio\Runner\TestLauncher.cs中的galio.Runner.TestLauncher.RunWithRuntime()处:第511行 在c:\reling\Projects\MbUnit v3.1\Work\src\Gallio\Gallio\Runner\TestLauncher.cs中的Gallio.Runner.TestLauncher.Run()处:第474行 在Gallio.Echo.EchoProgram.RunTests(ILogger记录器) 位于Gallio.Echo.EchoProgram.RunImpl(字符串[]args) 在c:\reling\Projects\MbUnit v3.1\Work\src\Gallio\Gallio\Gallio\Runtime\ConsoleSupport.ConsoleProgram`1.Run中运行(IRichConsole控制台,字符串[]args):第198行

但是,如果我从我的d/l文件夹中解压缩的位置运行它,则:

GallioBundle-3.1.397.0/bin Icarus用户界面出现。也。。。gallio.echo在命令行上运行时没有错误。这对我来说毫无意义,但确实如此


为什么Gallio不能从我的项目文件夹中运行?

它应该可以正常工作。Gallio真的不在乎文件夹的名称。 上述错误通常在某些文件丢失时出现


另一种尝试可能是运行“Gallio.Utility.exe ResetInstallationId”

似乎是二进制文件位于名为MbUnit的文件夹中导致了问题。当我将文件夹重命名为Gallio时,一切都开始正常工作


Gallio开发人员告诉我他们不能复制这个。。。但它是一致的,我甚至重新命名了文件夹,错误再次出现。

文件夹的名称无关紧要

第一次运行时,Gallio扫描文件夹中的插件,并将它们写入
%LocalAppData%\Gallio\Plugin元数据缓存中的XML文件。如果您在损坏的Gallio安装中运行可执行文件(例如,某些文件可能丢失),Gallio将对此进行缓存,即使您稍后修复了这些文件,它仍然认为安装已损坏,因为它可以看到其元数据的缓存视图。当您将Gallio移动到另一个文件夹中时,它会为该文件夹重新创建缓存,然后一切又开始工作(前提是文件实际上都在那里)


然后,修复方法是简单地擦除
插件元数据缓存
文件夹。

我同意,它应该可以工作,但不能。我也不明白。顺便说一句:我没有运行安装程序。我只是在使用二进制软件包。我在使用二进制软件包时遇到了同样的问题。如果我将其解压缩到“Lib\Gallio”目录结构中,Gallio.Echo.exe将抛出上述错误。如果我把它放在“GallioBundle-3.3.458.0\bin”目录中,它就可以正常工作。然后我把它放在任何地方都能正常运行?太奇怪了,你这么说,但我证实了。你认为我看到了什么吗?我的意思是,这并不直接重要,因为它不是在某个地方硬编码以查找
bin/
文件夹。只是在一次不稳定的启动之后,缓存被破坏了,你不能在那个文件夹中运行Gallio,直到你杀死了缓存,这个问题在很久以前就解决了。尽管如此,我认为是时候离开加利奥和姆布尼特了。他们似乎再也跟不上了。