private void GenerateCoreCLRProjectFiles(string serviceFilesRoot, ServiceConfiguration serviceConfiguration, string assemblyName)
{
var projectFilename = string.Concat(assemblyName, ".CoreCLR.xproj");
string projectGuid;
if (File.Exists(Path.Combine(serviceFilesRoot, projectFilename)))
{
Console.WriteLine("...updating existing project file {0}", projectFilename);
var projectPath = Path.Combine(serviceFilesRoot, projectFilename);
projectGuid = Utils.GetProjectGuid(projectPath);
}
else
{
projectGuid = Utils.NewProjectGuid;
Console.WriteLine("...creating project file {0}", projectFilename);
}
{
var templateSession = new Dictionary<string, object>();
templateSession["RootNamespace"] = serviceConfiguration.Namespace;
templateSession["AssemblyName"] = assemblyName;
templateSession["ProjectGuid"] = projectGuid;
CoreCLRProjectFile projectFileTemplate = new CoreCLRProjectFile();
projectFileTemplate.Session = templateSession;
var content = projectFileTemplate.TransformText();
GeneratorDriver.WriteFile(serviceFilesRoot, string.Empty, projectFilename, content);
}
{
var templateSession = new Dictionary<string, object>();
var dependencies = new List<string>();
foreach (var dependency in serviceConfiguration.ServiceDependencies.Keys)
{
if (string.Equals(dependency, "Core", StringComparison.InvariantCultureIgnoreCase))
continue;
dependencies.Add(dependency);
}
templateSession["ServiceDependencies"] = dependencies;
templateSession["AssemblyName"] = assemblyName;
var projectJsonTemplate = new CoreCLRProjectJson();
projectJsonTemplate.Session = templateSession;
var content = projectJsonTemplate.TransformText();
GeneratorDriver.WriteFile(serviceFilesRoot, string.Empty, "project.json", content);
}
}