public override void Configure(Container container) { SetConfig(new HostConfig { DebugMode = true, }); var contentRoot = Path.GetFullPath("../../../../ProtocApi"); var protocPath = Path.Combine(contentRoot, "protoc"); var exeDirPath = Env.IsWindows ? Path.Combine(protocPath, "win64") : Path.Combine(protocPath, "linux64"); var protocConfig = new ProtocConfig { ExePath = Env.IsWindows ? Path.Combine(exeDirPath, "protoc.exe") : Path.Combine(exeDirPath, "protoc"), PluginPath = exeDirPath, ProtoIncludeDirectory = Path.Combine(protocPath, "include"), TempDirectory = Path.Combine(contentRoot, "tmp"), }; try { FileSystemVirtualFiles.DeleteDirectoryRecursive(protocConfig.TempDirectory); } catch {} try { Directory.CreateDirectory(protocConfig.TempDirectory); } catch {} container.Register(protocConfig); }
// Configure your AppHost with the necessary configuration and dependencies your App needs public override void Configure(Container container) { SetConfig(new HostConfig { AllowFileExtensions = { "proto" }, }); var protocPath = Path.Combine(ContentRootDirectory.RealPath, "protoc"); var exeDirPath = Env.IsWindows ? Path.Combine(protocPath, "win64") : Path.Combine(protocPath, "linux64"); var protocConfig = new ProtocConfig { ExePath = Env.IsWindows ? Path.Combine(exeDirPath, "protoc.exe") : Path.Combine(exeDirPath, "protoc"), PluginPath = exeDirPath, ProtoIncludeDirectory = Path.Combine(protocPath, "include"), TempDirectory = Path.Combine(ContentRootDirectory.RealPath, "tmp"), }.Init(); container.Register(protocConfig); if (Env.IsWindows) { protocConfig.Languages.Remove(ProtocLang.Swift); // protoc-gen-grpc-swift does not exist on Windows } Plugins.Add(new SharpPagesFeature { ScriptMethods = { new ProtocScriptMethods(protocConfig) } }); }
public ProtocScriptMethods(ProtocConfig config) => this.config = config;