Question

I'm mkbundling a bunch of assemblies, including ServiceStack.Text. When running mkbundle, it tells me it's being embedded:

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

However, when I try to run the resulting executable, I get this:

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 

Any idea why it is attempting to load this assembly from the GAC, instead of using the embedded one?

Was it helpful?

Solution

There seems to be a bug with how ServiceStack is picking up WebHostPhysicalPath. You may be able to resolve this yourself by manually specifying the root directory of your application in the Configure method of your AppHost:

public override void Configure(Funq.Container container)
{
    Config = new HostConfig {
        WebHostPhysicalPath = System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location),
        ...
    }
}
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top