또한 기존 패키지를 덮어 쓸 수 없게되어서 고맙게 생각합니다. 그러나 NuGet 서버를 사용하지 않아도되는 것은 아닙니다. A similar feature request has been closed about two years ago.
그러나 source code을 보면 몇 가지 옵션이 열립니다. CreatePackage() -method를 살펴보십시오.
// Make sure they can access this package
if (Authenticate(context, apiKey, package.Id))
{
_serverRepository.AddPackage(package);
WriteStatus(context, HttpStatusCode.Created, "");
}
모두가 그렇게 생성자 주입을 사용하여 전달됩니다 그것은 지정된 패키지를 추가 할 수있다 (단지 API 키를 확인)하고 IServerPackageRepository 실제로 패키지를 추가 할 수 있는지 확인하기 위해 IPackageAuthenticationService를 사용 사용자 정의 구현을 전달하여 동작을 쉽게 확장 할 수 있습니다 (이에 대해서는 Ninject bindings 수정).
첫눈에 나는 사용자 지정을 위해 IServerPackageRepository으로 갈 것입니다. 현재 구현에서는 IFileSystem.AddFile (...)을 사용하여 패키지를 추가합니다. IFileSystem.FileExists (...)을 사용하여 패키지가 이미 있는지 확인할 수 있습니다.
지속적인 통합 관점에서 NuGet은 Semantic Versioning을 따르므로 기존 패키지를 덮어 쓰지 못하도록하는 것이 합리적입니다. 따라서 새로운 빌드에는 버그 수정, 새로운 기능 또는 변경 사항이 포함되어야합니다. 그러나 스냅 샷/사전 릴리스 덮어 쓰기 허용하도록 선택할 것입니다.
업데이트 : V2.8은 옵션 allowOverrideExistingPackageOnPush이있을 것이다 보인다 이전 버전과의 호환성에 대한 디폴트는 true. 그것은 1e7345624d으로 꾸몄다. 나는 그것을 포크 후에 깨달았다. 나는 너무 늦었다 .--)
업데이트 : 지난 2 년 동안 나는이 ootb를 지원하는 [Klondike] (https://github.com/themotleyfool/Klondike)를 사용하고 있습니다. 훌륭합니다. – mkoertgen