我有一些c#书中的。nupkg文件。我如何安装它们?


当前回答

用于Visual Studio 2017及其新的.csproj格式

您不能再仅仅使用Install-Package来指向本地文件。(这可能是因为PackageReference元素不支持文件路径;它只允许你指定包的Id。)

首先必须告诉Visual Studio包的位置,然后才能将其添加到项目中。大多数人做的是进入NuGet包管理器并添加本地文件夹作为源(菜单工具→选项→NuGet包管理器→包源)。但这意味着你的依赖项的位置不会与你的代码库的其他部分一起提交(到版本控制)。

使用相对路径的本地NuGet包

这将添加一个只适用于特定解决方案的包源,您可以使用相对路径。

你需要创造一个楔子。配置文件与您的.sln文件在同一目录下。将文件配置为所需的包源。当您下次在Visual Studio 2017中打开解决方案时,来自这些源文件夹的任何.nupkg文件都将可用。(您将在Package Manager中看到列出的源代码,当您管理项目的包时,您将在“Browse”选项卡上找到包。)

这里有一个例子。配置让你开始:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
    <packageSources>
        <add key="MyLocalSharedSource" value="..\..\..\some\folder" />
    </packageSources>
</configuration>

基本信息

My use case for this functionality is that I have multiple instances of a single code repository on my machine. There's a shared library within the codebase that's published/deployed as a .nupkg file. This approach allows the various dependent solutions throughout our codebase to use the package within the same repository instance. Also, someone with a fresh install of Visual Studio 2017 can just checkout the code wherever they want, and the dependent solutions will successfully restore and build.

其他回答

用于Visual Studio 2017及其新的.csproj格式

您不能再仅仅使用Install-Package来指向本地文件。(这可能是因为PackageReference元素不支持文件路径;它只允许你指定包的Id。)

首先必须告诉Visual Studio包的位置,然后才能将其添加到项目中。大多数人做的是进入NuGet包管理器并添加本地文件夹作为源(菜单工具→选项→NuGet包管理器→包源)。但这意味着你的依赖项的位置不会与你的代码库的其他部分一起提交(到版本控制)。

使用相对路径的本地NuGet包

这将添加一个只适用于特定解决方案的包源,您可以使用相对路径。

你需要创造一个楔子。配置文件与您的.sln文件在同一目录下。将文件配置为所需的包源。当您下次在Visual Studio 2017中打开解决方案时,来自这些源文件夹的任何.nupkg文件都将可用。(您将在Package Manager中看到列出的源代码,当您管理项目的包时,您将在“Browse”选项卡上找到包。)

这里有一个例子。配置让你开始:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
    <packageSources>
        <add key="MyLocalSharedSource" value="..\..\..\some\folder" />
    </packageSources>
</configuration>

基本信息

My use case for this functionality is that I have multiple instances of a single code repository on my machine. There's a shared library within the codebase that's published/deployed as a .nupkg file. This approach allows the various dependent solutions throughout our codebase to use the package within the same repository instance. Also, someone with a fresh install of Visual Studio 2017 can just checkout the code wherever they want, and the dependent solutions will successfully restore and build.

对于.nupkg文件,我喜欢使用:

Install-Package C:\Path\To\Some\File.nupkg

使用以下3个选项之一打包你的库:

Visual Studio (csproj >属性>包>勾选“生成NuGet包构建”。然后构建解决方案) dotnet命令行(在项目文件夹的命令提示符中:dotnet build,然后dotnet pack命令) NuGet命令行(在项目文件夹的命令提示符中:dotnet build,然后NuGet pack命令)

添加生成的包(在项目文件夹bin >调试(或发布)> *。使用nuget add命令将nupkg文件添加到离线提要(VS2019中的默认位置是C:\Program Files (x86)\Microsoft SDKs\NuGetPackages\) 在VS中,管理NuGet包>右上:更改包源为Microsoft Visual Studio Online Packages。

详细的说明可以在这里找到或在yt

Add the files to a folder called LocalPackages next to you solution (it doesn't have to be called that, but adjust the xml in the following step accordingly) Create a file called NuGet.config next to your solution file with the following contents <?xml version="1.0" encoding="utf-8"?> <configuration> <packageSources> <add key="LocalPackages" value="./LocalPackages" /> </packageSources> <activePackageSource> <!-- this tells that all of them are active --> <add key="All" value="(Aggregate source)" /> </activePackageSource> </configuration> If the solution is open in Visual Studio, close it, then re-open it.

现在您的包应该出现在浏览器中,或者可以使用Install-Package进行安装

您还可以使用包管理器控制台并通过在-Source参数中指定包含包文件的目录的路径来调用安装包cmdlet:

Install-Package SomePackage -Source C:\PathToThePackageDir\