Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Visual studio 2015 在VS2015的预构建事件中从nuget package文件夹调用可执行文件_Visual Studio 2015_Nuget_Pre Build Event - Fatal编程技术网

Visual studio 2015 在VS2015的预构建事件中从nuget package文件夹调用可执行文件

Visual studio 2015 在VS2015的预构建事件中从nuget package文件夹调用可执行文件,visual-studio-2015,nuget,pre-build-event,Visual Studio 2015,Nuget,Pre Build Event,我有一个带有命令行工具的nuget包,我想从VS2015项目中的预构建事件调用它 我可以使用相对路径从包文件夹调用命令,但如果nuget包版本或包文件夹发生更改,我必须修改该路径。有没有更简单的方法 您可以在项目根目录中创建一个批处理文件来调用您的工具,这与下面的脚本类似。有关在构建脚本中使用Nuget安装的工具的更多详细信息,请参阅: 不是真的。除非将工具作为内容添加到项目中。这是不推荐的。Grpc.Tools nuget包会在nuget文件夹中删除大量命令行工具。在nuget中打包所有东西

我有一个带有命令行工具的nuget包,我想从VS2015项目中的预构建事件调用它


我可以使用相对路径从包文件夹调用命令,但如果nuget包版本或包文件夹发生更改,我必须修改该路径。有没有更简单的方法

您可以在项目根目录中创建一个批处理文件来调用您的工具,这与下面的脚本类似。有关在构建脚本中使用Nuget安装的工具的更多详细信息,请参阅:


不是真的。除非将工具作为内容添加到项目中。这是不推荐的。Grpc.Tools nuget包会在nuget文件夹中删除大量命令行工具。在nuget中打包所有东西似乎很奇怪,没有简单的使用方法。诀窍是在安装和升级时使用正确的路径更新项目文件。只需添加一个具有特定名称的目标,这样您就可以在每次版本更改时删除它并重新添加它。事情就是这样。有些事情并不容易。这是目前为止最好的解决方案。我的项目只需要一些小的修改。令人惊讶的是,nuget在这个用例中不得不被“黑客”攻击。
@ECHO OFF 
SETLOCAL

FOR /R %~dp0\source\packages %%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