@robinherbots/grunt-dotnet
Version:
Grunt integration for Powershell WebAppPool commands.
777 lines (523 loc) • 15.4 kB
Markdown
# grunt-dotnet
> Grunt integration for Powershell WebAppPool commands.
## Getting Started
This plugin requires Grunt `~0.4.5`
If you haven't used [Grunt](http://gruntjs.com/) before, be sure to check out the [Getting Started](http://gruntjs.com/getting-started) guide, as it explains how to create a [Gruntfile](http://gruntjs.com/sample-gruntfile) as well as install and use Grunt plugins. Once you're familiar with that process, you may install this plugin with this command:
```shell
npm install grunt-dotnet --save-dev
```
Once the plugin has been installed, it may be enabled inside your Gruntfile with this line of JavaScript:
```js
grunt.loadNpmTasks("grunt-dotnet");
```
## The "dotnet_add" task
Add a package or reference to a .NET project.
### Overview
In your project's Gruntfile, add a section named `dotnet_add` to the data object passed into `grunt.initConfig()`.
```js
grunt.initConfig({
dotnet_add: {
your_target: {
options: {
project: "project | solution",
reference: "referenceProject",
package: "NugetPackage",
version: "1.0.0",
no_restore: true,
package_directory: "package_directory",
source: "nugetsource",
framework: "dotnetcore3.1",
},
},
},
});
```
### Options
#### options.project
Type: String
Default: ""
The project file to operate on. If a file is not specified, the command will search the current directory for one.
#### options.reference
Type: String
Default: null
The paths to the projects to add as references.
##### options.framework
Type: String
Default: null
Add the reference only when targeting a specific framework.
#### options.package
Type: String
Default: null
The package reference to add.
##### options.version
Type: String
Default: null
The version of the package to add.
##### options.framework
Type: String
Default: null
Add the reference only when targeting a specific framework.
##### options.no_restore
Type: Boolean
Default: false
Add the reference without performing restore preview and compatibility check.
##### options.source
Type: String
Default: null
The NuGet package source to use during the restore.
## The "dotnet_build" task
Build a .NET project.
### Overview
In your project's Gruntfile, add a section named `dotnet_build` to the data object passed into `grunt.initConfig()`.
```js
grunt.initConfig({
dotnet_build: {
your_target: {
options: {
project: "project | solution",
},
},
},
});
```
### Options
#### options.project
Type: String
Default: ""
The project or solution file to operate on. If a file is not specified, the command will search the current directory for one.
## The "dotnet_build_server" task
Interact with servers started by a build.
### Overview
In your project's Gruntfile, add a section named `dotnet_build_server` to the data object passed into `grunt.initConfig()`.
```js
grunt.initConfig({
dotnet_build_server: {
your_target: {
options: {
shutdown: true,
msbuild: true,
vbcscompiler: false,
razor: true,
},
},
},
});
```
### Options
#### options.shutdown
Type: boolean
Default: false
Shuts down build servers that are started from dotnet. By default, all servers are shut down.
##### options.msbuild
Type: boolean
Default: false
Shut down the MSBuild build server.
##### options.vbcscompiler
Type: boolean
Default: false
Shut down the VB/C# compiler build server.
##### options.razor
Type: boolean
Default: false
Shut down the Razor build server.
## The "dotnet_clean" task
Clean build outputs of a .NET project.
### Overview
In your project's Gruntfile, add a section named `dotnet_clean` to the data object passed into `grunt.initConfig()`.
```js
grunt.initConfig({
dotnet_clean: {
your_target: {
options: {
project: "project | solution",
},
},
},
});
```
### Options
#### options.project
Type: String
Default: ""
The project or solution file to operate on. If a file is not specified, the command will search the current directory for one.
## The "dotnet_dev_certs" task
Create and manage development certificates.
### Overview
In your project's Gruntfile, add a section named `dotnet_dev_certs` to the data object passed into `grunt.initConfig()`.
```js
grunt.initConfig({
dotnet_dev_certs: {
your_target: {
options: {},
},
},
});
```
### Options
## The "dotnet_fsi" task
Start F# Interactive / execute F# scripts.
### Overview
In your project's Gruntfile, add a section named `dotnet_fsi` to the data object passed into `grunt.initConfig()`.
```js
grunt.initConfig({
dotnet_fsi: {
your_target: {
options: {},
},
},
});
```
### Options
## The "dotnet_msbuild" task
Run Microsoft Build Engine (MSBuild) commands.
### Overview
In your project's Gruntfile, add a section named `dotnet_msbuild` to the data object passed into `grunt.initConfig()`.
```js
grunt.initConfig({
dotnet_msbuild: {
your_target: {
options: {
project: "project | solution",
target: ["Clean", "Rebuild"],
property: {
OutputPath: "build",
WarningLevel: 2,
PublishProfile: "Staging",
PackageVersion: "1.0.0",
FileVersion: "1.0.0",
Version: "1.0.0",
AssemblyVersion: "1.0.0"
...
},
verbosity: minimal
}
},
},
});
```
### Options
#### options.project
Type: String
Default: ""
Builds the specified targets in the project file. If
a project file is not specified, MSBuild searches the
current working directory for a file that has a file
extension that ends in "proj" and uses that file. If
a directory is specified, MSBuild searches that
directory for a project file.
#### options.target
Type: String[]
Default: null
Build these targets in this project.
#### options.property
Type: Object
Default: null
Set or override these project-level properties.
#### options.verbosity
Type: String
Default: "quiet"
Display this amount of information in the event log.
The available verbosity levels are: q[uiet], m[inimal], n[ormal], d[etailed], and diag[nostic].
### MSBuild Special characters
The following table lists MSBuild special characters which get autotranslated for the password property:
| Character | ASCII | Reserved usage |
| --------- | ----- | -------------------------------------------------------------------------- |
| & | %26 |
| % | %25 | Referencing metadata |
| $ | %24 | Referencing properties |
| @ | %40 | Referencing item lists |
| ' | %27 | Conditions and other expressions |
| ; | %3B | List separator |
| ? | %3F | Wildcard character for file names in Include and Exclude attributes |
| \* | %2A | Wildcard character for use in file names in Include and Exclude attributes |
## The "dotnet_new" task
Create a new .NET project or file.
### Overview
In your project's Gruntfile, add a section named `dotnet_new` to the data object passed into `grunt.initConfig()`.
```js
grunt.initConfig({
dotnet_new: {
your_target: {
options: {},
},
},
});
```
### Options
## The "dotnet_nuget" task
Provides additional NuGet commands.
### Overview
In your project's Gruntfile, add a section named `dotnet_nuget` to the data object passed into `grunt.initConfig()`.
```js
grunt.initConfig({
dotnet_nuget: {
your_target: {
options: {},
},
},
});
```
### Options
## The "dotnet_pack" task
Create a NuGet package.
### Overview
In your project's Gruntfile, add a section named `dotnet_pack` to the data object passed into `grunt.initConfig()`.
```js
grunt.initConfig({
dotnet_pack: {
your_target: {
options: {
project: "project | solution",
},
},
},
});
```
### Options
#### options.project
Type: String
Default: ""
The project or solution file to operate on. If a file is not specified, the command will search the current directory for one.
## The "dotnet_publish" task
Publish a .NET project for deployment.
### Overview
In your project's Gruntfile, add a section named `dotnet_publish` to the data object passed into `grunt.initConfig()`.
```js
grunt.initConfig({
dotnet_publish: {
your_target: {
options: {
project: "project | solution",
},
},
},
});
```
### Options
#### options.project
Type: String
Default: ""
The project or solution file to operate on. If a file is not specified, the command will search the current directory for one.
#### options.use_current_runtime
Type: Boolean
Default: false
Use current runtime as the target runtime.
#### options.output
Type: String
Default: ""
The output directory to place the published artifacts in.
#### options.manifest
Type: String
Default: ""
The path to a target manifest file that contains the list of packages to be excluded from the publish step.
#### options.no_build
Type: Boolean
Default: false
Do not build the project before publishing. Implies --no-restore.
#### options.self_contained
Type: Boolean
Default: false
Publish the .NET runtime with your application so the runtime doesn't need to be installed on the target machine. The default is 'true' if a runtime identifier is specified.
#### options.no_self_contained
Type: Boolean
Default: false
Publish your application as a framework dependent application. A compatible .NET runtime must be installed on the target machine to run your application.
#### options.nologo
Type: Boolean
Default: false
Do not display the startup banner or the copyright message.
#### options.framework
Type: String
Default: ""
The target framework to publish for. The target framework has to be specified in the project file.
#### options.runtime
Type: String
Default: ""
The target runtime to publish for. This is used when creating a self-contained deployment. The default is to publish a framework-dependent application.
#### options.configuration
Type: String
Default: ""
The configuration to publish for. The default is 'Debug'. Use the `PublishRelease` property to make 'Release' the default for this command.
#### options.version_suffix
Type: String
Default: ""
Set the value of the $(VersionSuffix) property to use when building the project.
#### options.interactive
Type: Boolean
Default: false
Allows the command to stop and wait for user input or action (for example to complete authentication).
#### options.no_restore
Type: Boolean
Default: false
Do not restore the project before building.
#### options.verbosity
Type: String
Default: ""
Set the MSBuild verbosity level. Allowed values are q[uiet], m[inimal], n[ormal], d[etailed], and diag[nostic].
#### options.arch
Type: String
Default: ""
The target architecture.
#### options.os
Type: String
Default: ""
The target operating system.
#### options.disable_build_servers
Type: Boolean
Default: false
Force the command to ignore any persistent build servers.
## The "dotnet_remove" task
Remove a package or reference from a .NET project.
### Overview
In your project's Gruntfile, add a section named `dotnet_remove` to the data object passed into `grunt.initConfig()`.
```js
grunt.initConfig({
dotnet_remove: {
your_target: {
options: {},
},
},
});
```
### Options
## The "dotnet_restore" task
Restore dependencies specified in a .NET project.
### Overview
In your project's Gruntfile, add a section named `dotnet_restore` to the data object passed into `grunt.initConfig()`.
```js
grunt.initConfig({
dotnet_restore: {
your_target: {
options: {
project: "project | solution",
source: [nuget package sources]
}
},
},
});
```
### Options
#### options.project
Type: String
Default: ""
The project or solution file to operate on. If a file is not specified, the command will search the current directory for one.
#### options.source
Type: string || string[]
Default: null
The NuGet package source(s) to use for the restore.
## The "dotnet_run" task
Build and run a .NET project output.
### Overview
In your project's Gruntfile, add a section named `dotnet_run` to the data object passed into `grunt.initConfig()`.
```js
grunt.initConfig({
dotnet_run: {
your_target: {
options: {},
},
},
});
```
### Options
## The "dotnet_sln" task
Modify Visual Studio solution files.
### Overview
In your project's Gruntfile, add a section named `dotnet_sln` to the data object passed into `grunt.initConfig()`.
```js
grunt.initConfig({
dotnet_sln: {
your_target: {
options: {},
},
},
});
```
### Options
## The "dotnet_sql_cache" task
SQL Server cache command-line tools.
### Overview
In your project's Gruntfile, add a section named `dotnet_sql_cache` to the data object passed into `grunt.initConfig()`.
```js
grunt.initConfig({
dotnet_sql_cache: {
your_target: {
options: {},
},
},
});
```
### Options
## The "dotnet_store" task
Store the specified assemblies in the runtime package store.
### Overview
In your project's Gruntfile, add a section named `dotnet_store` to the data object passed into `grunt.initConfig()`.
```js
grunt.initConfig({
dotnet_store: {
your_target: {
options: {},
},
},
});
```
### Options
## The "dotnet_test" task
Run unit tests using the test runner specified in a .NET project.
### Overview
In your project's Gruntfile, add a section named `dotnet_test` to the data object passed into `grunt.initConfig()`.
```js
grunt.initConfig({
dotnet_test: {
your_target: {
options: {},
},
},
});
```
### Options
## The "dotnet_tool" task
Install or manage tools that extend the .NET experience.
### Overview
In your project's Gruntfile, add a section named `dotnet_tool` to the data object passed into `grunt.initConfig()`.
```js
grunt.initConfig({
dotnet_tool: {
your_target: {
options: {},
},
},
});
```
### Options
## The "dotnet_vstest" task
Run Microsoft Test Engine (VSTest) commands.
### Overview
In your project's Gruntfile, add a section named `dotnet_vstest` to the data object passed into `grunt.initConfig()`.
```js
grunt.initConfig({
dotnet_vstest: {
your_target: {
options: {},
},
},
});
```
### Options
## The "dotnet_user_secrets" task
Manage development user secrets.
### Overview
In your project's Gruntfile, add a section named `dotnet_user_secrets` to the data object passed into `grunt.initConfig()`.
```js
grunt.initConfig({
dotnet_add: {
your_target: {
options: {},
},
},
});
```
### Options
## Contributing
In lieu of a formal styleguide, take care to maintain the existing coding style. Add unit tests for any new or changed functionality. Lint and test your code using [Grunt](http://gruntjs.com/).
## Release History
_(Nothing yet)_