nuget本地存储库推送不移动DLL

时间:2017-05-05 08:36:37

标签: c# nuget

我在H:\demo驱动器上创建了一个C#项目。我创造了一个nuget packege。

  • nuget spec
  • nuget pack app.1.0.0.nupkg
  • nuget push H:\ nuget_repository

我将其推送到H:\nuget_repository

上的nuget存储库

但现在当我将此包添加为任何项目的引用时,参考源目标设置为" H:\demo\packages\app.1.0.0\lib\net45\app.dll" 但是dll应该移动到我的项目bin目录。

<package >
  <metadata>
    <id>app</id>
    <version>1.0.0.1</version>
    <title>AppDemo</title>
    <authors>ok</authors>
    <owners>ok</owners>
    <licenseUrl>http://LICENSE_URL_HERE_OR_DELETE_THIS_LINE</licenseUrl>
    <projectUrl>http://PROJECT_URL_HERE_OR_DELETE_THIS_LINE</projectUrl>
    <iconUrl>http://ICON_URL_HERE_OR_DELETE_THIS_LINE</iconUrl>
    <requireLicenseAcceptance>false</requireLicenseAcceptance>
    <description>app</description>
    <releaseNotes>Summary of changes made in this release of the package.</releaseNotes>
    <copyright>Copyright 2017</copyright>
    <tags>app Repository</tags>
  </metadata>
  <files>
    <file src="bin\Debug\app.dll" target="lib"></file>
  </files>
</package>

1 个答案:

答案 0 :(得分:1)

  

但是dll应该移动到我的项目bin目录

不,为什么?

您从包裹Feed中获取包裹。在这种情况下,此Feed在本地计算机上是无关紧要的,因为NuGet将提要视为瞬态:它将包复制到本地缓存中。

从那里,包被复制到项目本地缓存(..\packages\$packageName),然后NuGet将对该目录中程序集的引用添加到项目中。

然后,在构建项目时,引用的程序集将从程序包目录复制到输出目录(bin)。