NuGet 패키지에 솔루션 수준 항목 추가
NuGet 패키지를 통해 솔루션 폴더 및 솔루션 항목(프로젝트 아님)을 솔루션 파일에 추가하고자 합니다.파워셸을 통해 이뤄지리라 생각합니다.NuGet, Powershell 및 EnvDTE에 대한 설명서를 살펴보았지만 다음 사항을 파악할 수 없습니다.
- 어떤 명령/방법을 사용해야 합니까?
- Init.ps1, Install.ps1 또는 다른 곳에서 이 작업을 수행할 표준 스크립트는 무엇입니까?
다음은 PowerShell 스크립트로, 이 스크립트에서 Parent라는 솔루션 폴더와 Child라는 다른 솔루션 폴더를 생성합니다.또한 하위 솔루션 폴더 안에 프로젝트 파일(MyProject.csproj)을 추가합니다.
# Get the open solution.
$solution = Get-Interface $dte.Solution ([EnvDTE80.Solution2])
# Create the parent solution folder.
$parentProject = $solution.AddSolutionFolder("Parent")
# Create a child solution folder.
$parentSolutionFolder = Get-Interface $parentProject.Object ([EnvDTE80.SolutionFolder])
$childProject = $parentSolutionFolder.AddSolutionFolder("Child")
# Add a file to the child solution folder.
$childSolutionFolder = Get-Interface $childProject.Object ([EnvDTE80.SolutionFolder])
$fileName = "D:\projects\MyProject\MyProject.csproj"
$projectFile = $childSolutionFolder.AddFromFile($fileName)
여기서 사용되는 두 가지 주요 비주얼 스튜디오 인터페이스는 Solution2와 SolutionFolder입니다.또한 NuGet에서 제공하는 Get-Interface 기능을 사용합니다.
install.ps1은 프로젝트 기반 패키지에 대해서만 호출되므로 솔루션 전용 패키지의 경우 스크립트를 init.ps1에 배치해야 합니다.Init.ps1은 패키지를 처음 설치할 때와 Visual Studio에서 솔루션을 다시 열 때마다 솔루션에 대해 한 번 실행됩니다.
솔루션 폴더에 임의 파일(프로젝트가 아닌 파일)을 추가하려면 다음과 유사한 작업을 수행해야 합니다.
$vsSolution = Get-Interface $dte.Solution ([EnvDTE80.Solution2])
$vsProject = $vsSolution.AddSolutionFolder("newFolder")
$projectItems = Get-Interface $vsProject.ProjectItems ([EnvDTE.ProjectItems])
$projectItems.AddFromFile("pathToFileToAdd.txt")
이 PowerShell 스크립트에는 파일 맨 위에 있는 표준 매개 변수 선언이 없습니다.
param($installPath, $toolsPath, $package, $project)
또한 솔루션 폴더와 폴더 항목이 이미 존재하는지 확인하는 것도 누락되어 있습니다.그것은 연습문제로 남겨 두겠습니다.
언급URL : https://stackoverflow.com/questions/6460854/adding-solution-level-items-in-a-nuget-package
'programing' 카테고리의 다른 글
MariaDB 데이터베이스에서 권한 부여 (0) | 2023.09.13 |
---|---|
word press rest api 데이터가 전송되지 않는 것처럼 동작합니다. (0) | 2023.09.13 |
입력을 대문자로 변경 (0) | 2023.09.13 |
C#에서 XmlReader로 Xml 읽기 (0) | 2023.09.13 |
XmlNode 값 대 내부 텍스트 (0) | 2023.09.13 |