# Add(string)

> Adds a package dependency to the project. Requesting a new or different dependency often leads to changing installed packages, but only after the Package Manager constructs a dependency graph to solve any version conflicts. For more information, see Dependency and resolution.

## Definition

* **Type:** Method
* **Namespace:** [UnityEditor.PackageManager](/engine/6000.0/script-reference/unityeditor/packagemanager.md)
* **Assembly:** UnityEditor

```csharp
public static AddRequest Add(string identifier)
```

### Parameters

**** (\[string]\(https\://learn.microsoft.com/dotnet/api/system.string)): A string representing the package to be added:- To install a specific version of a package, use a package identifier ("name\@version"). This is the only way to install a [pre-release](/engine/6000.0/manual/packages-list/packages-all/pack-preview.md) version.

- To install the latest compatible ([released](/engine/6000.0/manual/packages-list/packages-all/pack-safe.md)) version of a package, specify only the package [name](/engine/6000.0/manual/packages-list/cus-pkg-development/upm-manifest-pkg.md).

- To install a git package, specify a [git url](/engine/6000.0/manual/packages-list/upm-git.md).

- To install a [local](/engine/6000.0/manual/packages-list/dependencies-lp/upm-localpath.md) package, specify a value in the format "file:/path/to/package/folder".

- To install a [local tarball](/engine/6000.0/manual/packages-list/dependencies-lp/upm-localpath.md) package, specify a value in the format "file:/path/to/package-file.tgz".`ArgumentException` is thrown if `identifier` is `null` or empty.

### Returns

| Type                                                                                            | Description                                                                                                                                                                                                                                                                                                                      |
| ----------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| [AddRequest](/engine/6000.0/script-reference/unityeditor/packagemanager/requests/addrequest.md) | An [AddRequest](/engine/6000.0/script-reference/unityeditor/packagemanager/requests/addrequest.md) instance, which you can use to get the [PackageInfo](/engine/6000.0/script-reference/unityeditor/packagemanager/packageinfo.md) representing the package that was added to the project from the `AddRequest.Result` property. |

### Remarks

`Add()` is an asynchronous operation. Before the operation is complete, you can use the `AddRequest` instance to monitor the asynchronous operation.

**Note:** Make sure any other Client operations have completed before calling this method. For more information, see the note on the [Client](/engine/6000.0/script-reference/unityeditor/packagemanager/client.md) class reference page.
