创建nuget包时更改根文件夹

时间:2018-08-17 14:07:45

标签: .net visual-studio nuget nuget-package

我正在使用VS2017和_CreateNewNuGetPackage从Web项目(.Net)创建NuGet程序包。所有文件都放在/ content文件夹中。在项目中安装NuGet软件包时的问题是所有文件都将安装在根文件夹中。

我真正想要的是拥有一个Nuget包,其中所有构建文件都位于content / extraFolder /中。

我尝试使用.nuspec文件中的标记选项,但是.nuspec添加了项目中的文件,而不是构建文件。

之后,我尝试将构建路径设置为bin \ extraFolder并使用选项“ Nuget pack xxx -BasePath .. \ xxx”,但是nuget似乎使用vbproj文件,而忽略了basepath选项。

我知道可以nuget install -outputdir extraFolder /,但是我想让nuget软件包的用户容易使用。

我想要的nuget包是这样的:

content/
  extraFolder/
    all build folders and files
lib/
  dll file

当前唯一缺少的是 extraFolder 。有人知道我该怎么做吗?

1 个答案:

答案 0 :(得分:0)

  

我真正想要的是拥有一个Nuget包,其中所有构建文件都位于content / extraFolder /中。

如果我对您的理解正确,则可以尝试将<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified"> <xs:attribute name="id" type="xs:ID"/> 文件中的target="content"更改为.nuspec。因此,您的target="content\content\extraFolder"如下:

.nuspec

然后,当您打包此<?xml version="1.0"?> <package > <metadata> <id>MyTestPackager</id> <version>1.0.0</version> <authors>Tester</authors> <owners>Tester</owners> <requireLicenseAcceptance>false</requireLicenseAcceptance> <description>Package description</description> <releaseNotes>Summary of changes made in this release of the package.</releaseNotes> <copyright>Copyright 2018</copyright> <tags>Tag1 Tag2</tags> </metadata> <files> <file src="Test.xml" target="content\content\extraFolder\Test.xml" /> </files> </package> 文件时,您将获得以下软件包:

enter image description here

将此软件包添加到项目中,所有构建文件都位于content / extraFolder /中:

enter image description here

如果我对您的问题的理解不正确,请添加到屏幕快照中,以了解您的当前状态以及您直接想要的内容。

更新

  

我一无所知的部分是MSBuild放置的部分   “ bin”文件夹中的已构建文件

如果要将这些文件放在.nuspec文件夹中,则需要在\bin文件夹中添加.target文件以将这些文件复制到bin文件夹:

\build文件的内容:

.targets

在nuspec文件中,将.targets文件添加到构建文件夹:

            

检查similar thread以获得更多详细信息。