1

我正在捆绑一堆程序集,包括 ServiceStack.Text。运行 mkbundle 时,它​​告诉我它正在嵌入:

embedding: /home/user/Verisys/build/ServiceStack.Text.dll

但是,当我尝试运行生成的可执行文件时,我得到了这个:

Unhandled exception
System.ApplicationException: RootDir '/opt/mono32/lib/mono/gac/ServiceStack.Text/4.0.0.0__e06fbc6124f57c43' for virtual path does not exist
  at ServiceStack.VirtualPath.FileSystemVirtualPathProvider.Initialize () [0x00000] in <filename unknown>:0 
  at ServiceStack.VirtualPath.FileSystemVirtualPathProvider..ctor (IAppHost appHost, System.IO.DirectoryInfo rootDirInfo) [0x00000] in <filename unknown>:0 
  at ServiceStack.VirtualPath.FileSystemVirtualPathProvider..ctor (IAppHost appHost, System.String rootDirectoryPath) [0x00000] in <filename unknown>:0 
  at ServiceStack.ServiceStackHost.Init () [0x00000] in <filename unknown>:0 
  at MyExe.OnStart (System.String[] args) [0x00000] in <filename unknown>:0 

知道为什么它试图从 GAC 加载这个程序集,而不是使用嵌入式程序集吗?

4

1 回答 1

2

ServiceStack 的启动方式似乎存在错误WebHostPhysicalPath。您可以通过在您的Configure方法中手动指定应用程序的根目录来自己解决此问题AppHost

public override void Configure(Funq.Container container)
{
    Config = new HostConfig {
        WebHostPhysicalPath = System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location),
        ...
    }
}
于 2014-04-25T11:47:16.300 回答