如何为NuGet源程序包指定特定文件夹?

时间:2019-02-20 22:56:12

标签: visual-studio .net-core nuget

我在dotnet项目中正在使用NuGet软件包源:

bar

源文件位于包的<Project Sdk="Microsoft.NET.Sdk"> <PropertyGroup> <TargetFrameworks>netstandard2.0</TargetFrameworks> </PropertyGroup> <ItemGroup> <PackageReference Include="Microsoft.Bcl.Json.Sources" Version="4.6.0-preview.19073.11"> <PrivateAssets>All</PrivateAssets> </PackageReference> </ItemGroup> </Project> 文件夹中,但在项目的根文件夹中可见。 这会导致现有文件的异常行为。

如何为该软件包指定项目文件夹位置?

1 个答案:

答案 0 :(得分:1)

  

如何为NuGet源程序包指定特定文件夹?

恐怕没有这种方法可以直接为该软件包指定项目文件夹位置。因为此行为由程序包的内部文件结构确定。如果我们不是该软件包的作者/所有者,则无法更改该软件包的内部文件结构。

作为一种解决方法,您可以下载该nuget程序包并重新打包该程序包,然后使用Value文件将目标文件夹更改为contentFiles/cs/netstandard2.0/Test/

.nuspec

然后将此包添加到您的local nuget package feed,然后使用此自定义nuget包,将所有这些<?xml version="1.0" encoding="utf-8"?> <package xmlns="http://schemas.microsoft.com/packaging/2013/05/nuspec.xsd"> <metadata minClientVersion="2.12"> <id>Microsoft.Bcl.Json.Sources</id> <version>4.6.0-preview.19073.11</version> <title>Microsoft.Bcl.Json.Sources</title> <authors>Microsoft</authors> <owners>microsoft,dotnetframework</owners> <requireLicenseAcceptance>false</requireLicenseAcceptance> <licenseUrl>https://github.com/dotnet/corefx/blob/master/LICENSE.TXT</licenseUrl> <projectUrl>https://dot.net/</projectUrl> <iconUrl>http://go.microsoft.com/fwlink/?LinkID=288859</iconUrl> <description>Add Description Here</description> <releaseNotes>https://go.microsoft.com/fwlink/?LinkID=799421</releaseNotes> <copyright>© Microsoft Corporation. All rights reserved.</copyright> <serviceable>true</serviceable> <contentFiles> <files include="cs/netstandard2.0/BitStack.cs" buildAction="content" flatten="true" copyToOutput="true"/> <files include="cs/netstandard2.0/xx.cs" buildAction="content" flatten="true" copyToOutput="true"/> ... </contentFiles> </metadata> <files> <file src="build/netstandard2.0/Microsoft.Bcl.Json.Sources.targets" target="build" /> <file src="build/netstandard2.0/Strings.resx" target="build" /> <file src="contentFiles/cs/netstandard2.0/BitStack.cs" target="contentFiles/cs/netstandard2.0/Test/" /> <file src="contentFiles/cs/netstandard2.0/xx.cs" target="contentFiles/cs/netstandard2.0/Test/" /> ... </files> </package> 文件添加到.cs文件夹中:

enter image description here

希望这会有所帮助。