将所有包推送到远程NuGet提要

时间:2016-07-15 10:38:45

标签: .net nuget asp.net-core-1.0

我正在尝试将我的应用迁移到新的.Net Core 1.0。我的构建服务器无法访问Internet,因此我在构建服务器上运行了本地NuGet服务器。

有没有办法可以让我的脚本读取我的解决方案并将所有新的和更新的包推送到远程NuGet服务器?

我环顾四周,发现你应该能够将这些行放在project.json文件中,它会将所有包推送到服务器。

  "scripts": {
    "postpublish": [ "dotnet publish-iis --publish-folder %publish:OutputPath% --framework %publish:FullTargetFramework%" ],
    "postcompile": [
      "dotnet pack --no-build",
      "\"%project:Directory%\\..\\..\\nuget.exe\" push \"%project:Directory%\\bin\\%compile:Configuration%\\%project:Name%.%project:Version%.nupkg\" -source http://xx.xxx.xx.xx/nuget -ApiKey "
    ]
  },

但是在dotnet pack --no-build完成之后我收到了错误。

The system cannot find the file specified C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v14.0\DotNet\Microsoft.DotNet.Common.Targets

如果我双击错误,它会打开文件并转到

<Dnx
  RuntimeExe="$(SDKToolingExe)"
  Condition="'$(_DesignTimeHostBuild)' != 'true'"
  ProjectFolder="$(MSBuildProjectDirectory)"
  Arguments="$(_BuildArguments)"
  />

对此有何不同解决方案的建议?

1 个答案:

答案 0 :(得分:1)

我认为common.targets部分是红鲱鱼。 nuget.exe或推送路径最有可能是非常正确的。

我要做的是将nuget push命令放在.cmd文件中,将文件路径作为参数传递,然后查看输出窗口以查看nuget正在使用的实际参数。验证nuget exe和nupkg的那些路径是否准确。您可能缺少路径中的框架文件夹。例如,对我来说,我的路径看起来更像是

%project:Directory%\\bin\\%compile:Configuration%\\%compile:TargetFramework%\\%project:Name%.%project:Version%.nupkg