2017-11-07 7 views
0

내 VS 2017 NuGet 패키지에 대한 사용자 정의 설치 스크립트를 추가하고 싶습니다.VS 2017의 Nuget 스크립팅

문제는 install.ps1/uninstall.ps1 메커니즘에 대한 지원이 제거되었습니다. init.ps1은 여전히 ​​작동하지만 솔루션이 열릴 때마다 실행되며 이는 받아 들일 수 없습니다 (잠재적으로 긴 프로세스입니다).

빌드 dir에서 사용자 지정 msbuild 대상을 정의하는 것이 가능하지만 파일을 포함하도록 .nuspec 파일을 조작해야하므로 작동하지 않습니다. VS에서 수행하는 방법을 볼 수 없습니다. 2017 .csproj 파일 만 사용하십시오.

+0

무엇 : 예를 들어, 사용자 정의 기본 DLL 출력을 변경할 수 nuget 스크립트를 설치하려는, 당신은 당신이 들어있는 파일 빌드 \의 MyNuGet.targets를 만들 수 있습니다, 그것을 달성하기 위해 복사 작업으로 .target 파일을 사용할 수 있습니다 당신은 사용자 정의 스크립트를 사용하여 달성하려고? – ThePretendProgrammer

+0

패키지 p/invoke가있는 원시 DLL을 가져옵니다. 나는 모든 OS/컴파일러/아치 물건에서 나를 추상화하는 [Conan 패키지 관리자] (conan.io)를 사용하여 그것을 수행한다. –

답변

2

하지만 난 .nuspec을 조작하지 않고는 파일

당신은 build 디렉토리에서 사용자 정의 msbuild를 .targets을 추가 할 NuGet Package Explorer을 사용할 수를 포함하도록 .nuspec 파일을 조작해야하기 때문에 그 동작하지 않습니다 파일 :

enter image description here

내가 어떻게 볼 수 VS 2017 위스콘신에서 그냥 .csproj 파일. 아시다시피, PowerShell 스크립트 지원, 그렇지 않으면, 우리는 NuGet을 덮어 쓸 필요가 더 이상 스크립트 설치 및 제거, 그래서 우리는 커스텀 nuget 패키지를 설치할 때 호출되는 스크립트를 설치할 수 없습니다를 실행하지 수정되었습니다

Visual Studio의 API : IVsPackageInstaller interface (권장하지 않음).

해결 방법으로, 사용자 지정 msbuild .targets 파일을 정의하여 nuget 패키지를 설치 한 후 사용자 지정 설치 스크립트로 원하는 것을 얻을 수 있습니다.

<?xml version="1.0" encoding="utf-8" ?> 
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> 
    <ItemGroup> 
     <MySourceFiles Include="$(ProjectDir)MyFolder\**" /> 
    </ItemGroup> 
    <Target Name="MyNuGetCustomTarget" AfterTargets="Build"> 
     <Copy SourceFiles="@(MySourceFiles)" DestinationFolder="$(OutDir)" /> 
    </Target> 
</Project> 
+0

네, 이것이 내가 한 일입니다. 여기에서 세부 정보 : https://programatealgo.blogspot.com.ar/2017/11/nuget-scripting-in-vs-2017.html –