빌드, 테스트 및 배포 단계가있는 CI/CD 파이프 라인을 설치하고 싶습니다. 내가 구축하고 이미 구축 된 ..\BuildOutput\MyProject.dll
에 대한 테스트를 실행합니다프로젝트를 재건하지 않고 msbuild로 nuget 패키지를 만드는 방법은 무엇입니까?
msbuild src\MyProject.csproj /t:Restore
msbuild src\MyProject.csproj /p:Configuration=Release /p:OutputPath=../BuildOutput
다음과 빌드 단계에서 내 프로젝트를 구축 할 수 있습니다.
msbuild tests\MyProject.Tests.csproj /t:Restore
msbuild tests\MyProject.Tests.csproj /p:Configuration=Release /p:OutputPath=../BuildOutput /p:BuildProjectReferences=false
vstest.console BuildOutput\MyProject.Tests.dll
이 시점까지는 효과가있는 것으로 보입니다.
이제 너겟 패키지를 생성하고 싶습니다.
msbuild src\MyProject.csproj /t:Pack /p:Configuration=Release /p:OutputPath=../BuildOutput /p:VersionPrefix=1.2.3
을 그리고 그 BuildOutput
폴더에 MyProject.1.2.3.nupkg
를 만들 것입니다 : 나는 호출 할 수 있습니다. 그러나 프로젝트를 다시 빌드합니다.
나는 dotnet
cli와 (과) 비슷한 종류를 찾고 있습니다.
dotnet pack --no-build
내 프로젝트에는 COM 참조가 있기 때문에 dotnet
을 사용할 수 없습니다.
는 또한 Nuget.exe로 보았다하지만 내가 msbuild를 구축 건너 뛸 수있는 속성을 가지고 있는가 nuget pack
Unable to cast object of type 'System.String' to type NuGet.Frameworks.NuGet.Frameworks1051960.NuGetFramework'.
를 호출 할 때 오류가 발생하는 것 같다?
. 따라서 빌드 단계에서 프로젝트를 만들고 패키지를 만듭니다. 배포 할 시간이되면 빌드 단계에서 생성 된 패키지 만 제공합니다. 빌드 단계에서 항상 패키지를 생성하기에는 약간의 중복성이 있다고 느껴지더라도 여전히 쓸모없는 파이프 라인을 선호합니다. :). –