添加项目文件。
This commit is contained in:
44
Szmedi.RvKits/RvScript/RevitRoslynHost.cs
Normal file
44
Szmedi.RvKits/RvScript/RevitRoslynHost.cs
Normal file
@@ -0,0 +1,44 @@
|
||||
using System.Collections.Immutable;
|
||||
using System.Reflection;
|
||||
|
||||
using Microsoft.CodeAnalysis;
|
||||
using Microsoft.CodeAnalysis.CSharp;
|
||||
|
||||
using RoslynPad.Roslyn;
|
||||
|
||||
namespace Szmedi.RvKits.RvScript
|
||||
{
|
||||
public class RevitRoslynHost : RoslynHost
|
||||
{
|
||||
public RevitRoslynHost(IEnumerable<Assembly> additionalAssemblies = null, RoslynHostReferences references = null, ImmutableArray<string>? disabledDiagnostics = null) : base(additionalAssemblies, references, disabledDiagnostics)
|
||||
{
|
||||
}
|
||||
|
||||
protected override Project CreateProject(Solution solution, DocumentCreationArgs args, CompilationOptions compilationOptions, Project previousProject = null)
|
||||
{
|
||||
var name = args.Name ?? "Program";
|
||||
var id = ProjectId.CreateNewId(name);
|
||||
|
||||
var parseOptions = new CSharpParseOptions(kind: SourceCodeKind.Script, languageVersion: LanguageVersion.Default);
|
||||
|
||||
compilationOptions = compilationOptions.WithScriptClassName(name);
|
||||
|
||||
solution = solution.AddProject(ProjectInfo.Create(
|
||||
id,
|
||||
VersionStamp.Create(),
|
||||
name,
|
||||
name,
|
||||
LanguageNames.CSharp,
|
||||
isSubmission: true,
|
||||
parseOptions: parseOptions,
|
||||
hostObjectType: typeof(ScriptGlobals),
|
||||
compilationOptions: compilationOptions,
|
||||
metadataReferences: previousProject != null ? ImmutableArray<MetadataReference>.Empty : DefaultReferences,
|
||||
projectReferences: previousProject != null ? new[] { new ProjectReference(previousProject.Id) } : null));
|
||||
|
||||
var project = solution.GetProject(id);
|
||||
|
||||
return project;
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user