ScriptSourceGenerator 1.0.6
dotnet add package ScriptSourceGenerator --version 1.0.6
NuGet\Install-Package ScriptSourceGenerator -Version 1.0.6
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="ScriptSourceGenerator" Version="1.0.6" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add ScriptSourceGenerator --version 1.0.6
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
#r "nuget: ScriptSourceGenerator, 1.0.6"
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
// Install ScriptSourceGenerator as a Cake Addin #addin nuget:?package=ScriptSourceGenerator&version=1.0.6 // Install ScriptSourceGenerator as a Cake Tool #tool nuget:?package=ScriptSourceGenerator&version=1.0.6
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
ScriptSourceGenerator
This geneator can compile and run csx
files and generate files from csx scripts using Roslyn scripting.
Usage
var httpClient = new HttpClient();
var result = await client.GetStringAsync("http://www.github.com");
- Change
.csx
fileBuild Action
property toC# analyzer additional file
or modify csproj like this:
<ItemGroup>
<None Remove="MyScript.csx" />
<AdditionalFiles Include="MyScript.csx" />
</ItemGroup>
- If you want to create files as an output, you can use global
Output
indexer property which is aStringBuilder
:
Output["Github.html"].Append(result);
- Even you can create
.cs
files to generate compile time source codes:
Output["MyModel.cs"].AppendLine("""
public class MyModel
{
""");
for(var i=0; i < 5; i++)
{
Output["MyModel.cs"].AppendLine($$"""
public string Prop{{i}} { get; set; }
""");
}
Output["MyModel.cs"].AppendLine("}");
and it will be generate this file:
public class MyModel
{
public string Prop0 { get; set; }
public string Prop1 { get; set; }
public string Prop2 { get; set; }
public string Prop3 { get; set; }
public string Prop4 { get; set; }
}
- To add assembly references and nuget references use
#r
directives:
#r "nuget:Microsoft.OpenApi.Readers/1.4.5"
#r "System.Net.Http"
using System;
using System.Net.Http;
using Microsoft.OpenApi;
using Microsoft.OpenApi.Extensions;
using Microsoft.OpenApi.Readers;
var httpClient = new HttpClient
{
BaseAddress = new Uri("https://raw.githubusercontent.com/OAI/OpenAPI-Specification/")
};
var stream = await httpClient.GetStreamAsync("master/examples/v3.0/petstore.yaml");
// Read V3 as YAML
var openApiDocument = new OpenApiStreamReader().Read(stream, out var diagnostic);
// Write V2 as JSON
var outputString = openApiDocument.Serialize(OpenApiSpecVersion.OpenApi2_0, OpenApiFormat.Json);
Output["GeneratedModels.cs"].Append(outputString);
- External csx files can be imported with
#load
directive
#load "NetStandard20Fixes.csx"
#r "nuget: NSwag.Core.Yaml/13.18.0"
#r "nuget: NSwag.CodeGeneration.CSharp/13.18.0"
#r "System.Net.Http"
using System.Net.Http;
using NJsonSchema.Generation;
using NJsonSchema.Yaml;
using NSwag;
using NSwag.CodeGeneration.CSharp;
string yaml;
using (var httpClient = new HttpClient())
yaml = await httpClient.GetStringAsync("https://raw.githubusercontent.com/OAI/OpenAPI-Specification/master/examples/v3.0/petstore.yaml");
var openApiDocument = await OpenApiYamlDocument.FromYamlAsync(yaml);
var settings = new CSharpClientGeneratorSettings
{
};
var generator = new CSharpClientGenerator(openApiDocument, settings);
Output["g.cs"].Append(generator.GenerateFile());
There are no supported framework assets in this package.
Learn more about Target Frameworks and .NET Standard.
-
.NETStandard 2.0
- Microsoft.CodeAnalysis.CSharp.Scripting (>= 4.4.0)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.