Вызов исполняемого файла из папки пакета nuget в событии предварительной сборки в VS2015

#visual-studio-2015 #nuget #pre-build-event

#visual-studio-2015 #nuget #событие предварительной сборки

Вопрос:

У меня есть пакет nuget с инструментами командной строки, которые я хочу вызвать из события предварительной сборки в проекте VS2015.

Я мог бы использовать относительный путь для вызова команды из папки пакета, но затем мне нужно изменить этот путь, если изменится версия пакета nuget или папка пакета. Есть ли более простой способ сделать это?

Комментарии:

1. не совсем. если вы не добавите свои инструменты в проект в качестве содержимого. Что не рекомендуется.

2. Grpc. Инструменты пакет nuget удаляет кучу инструментов командной строки в папках nuget. Кажется странным упаковывать все в nuget без простого способа их использования.

3. Хитрость заключается в том, чтобы обновить файл проекта с правильным путем при установке и обновлении. Просто добавьте цель с определенным именем, чтобы вы могли удалять ее и добавлять заново при каждом изменении версии. Так оно и есть. Некоторые вещи непростые.

Ответ №1:

Вы можете создать пакетный файл в корне вашего проекта для вызова ваших инструментов, что аналогично приведенному ниже сценарию. Более подробную информацию об использовании инструмента, установленного Nuget, в ваших сценариях сборки см.:

https://lostechies.com/joshuaflanagan/2011/06/24/how-to-use-a-tool-installed-by-nuget-in-your-build-scripts/

 @ECHO OFF 
SETLOCAL

FOR /R %~dp0sourcepackages %%G IN (nunit-console.exe) DO ( 
 IF EXIST %%G ( 
  SET TOOLPATH=%%G 
  GOTO FOUND 
  ) 
) 

IF '%TOOLPATH%'=='' GOTO NOTFOUND 

:FOUND 
%TOOLPATH% %* 
GOTO :EOF 

:NOTFOUND 
ECHO nunit-console not found. 
EXIT /B 1
  

Комментарии:

1. Пока это лучшее решение. Для моего проекта потребовались лишь незначительные изменения. Удивлен, что nuget пришлось «взломать» для этого варианта использования.