c#/helper

c# PackageOutputPath Nuget 패키지 경로 설정

AUSTAR 2024. 4. 23. 23:50

c# 프로젝트 설정 파일에서 PackageOutputPath 태그를 이용하여 프로젝트 빌드 후 Nuget 에서 추가한 패키지 dll이 생성될 위치를 지정할 수 있다.

기본적으로 실행 dll과 같은 곳에 위치해서 생성이 되지만 간혹 빌드 위치를 변경하여 다른곳에 프로젝트 dll이 생성될 경우 해당 옵션을 통해 Nuget 패키지 dll을 같은 곳에 생성하여 문제가 생기는 일을 피하도록 하자.

 

		<!-- NuGet 패키지가 생성될 위치를 결정 -->
		<PackageOutputPath>$(OutputPath)\bin</PackageOutputPath>

다음과 같이 사용할 수 있으며 PackageOutputPath 태그 안에 입력된 $(OutputPath) 는 MSBuild에서 지원하는 명령어로 기본 출력 경로를 뜻한다.

 

해당 태그를 프로젝트 설정 파일에 추가한다면 다음과 같은 형태가 된다.

PropertyGroup 태그의 제일 하단을 확인하면 된다.

 

<Project Sdk="Microsoft.NET.Sdk">

	<PropertyGroup>
		<!-- 빌드시 출력물-->
		<OutputType>WinExe</OutputType>
		<!-- .net 버전 설정-->
		<TargetFramework>net8.0-windows</TargetFramework>
		<!-- null 허용 경고 여부 -->
		<Nullable>enable</Nullable>
		<!--암시적 global using 지시문을 사용 및 사용하지 않도록 설정-->
		<ImplicitUsings>enable</ImplicitUsings>
		<!-- WPF 사용 설정-->
		<UseWPF>true</UseWPF>
		<!-- NuGet 패키지가 생성될 위치를 결정 -->
		<PackageOutputPath>$(OutputPath)\bin</PackageOutputPath>
	</PropertyGroup>
</Project>

 


참고 사이트

https://learn.microsoft.com/ko-kr/nuget/reference/msbuild-targets#pack-target-inputs

 

NuGet대상으로 압축 및 복원 MSBuild

NuGetpack 및 restore는 4.0 이상의 대상으로 NuGet 직접 MSBuild 작동할 수 있습니다.

learn.microsoft.com

 

https://learn.microsoft.com/ko-kr/nuget/create-packages/creating-a-package-msbuild#set-properties

 

MSBuild를 사용하여 NuGet 패키지 만들기

파일 및 버전 관리와 같은 주요 결정 사항을 포함하여 MSBuild를 사용하여 NuGet 패키지를 디자인하고 만드는 과정을 자세히 안내합니다.

learn.microsoft.com