构建目标工具路径
Build target tools path
我目前正在为我的 code generator project 打包一个 nuget 包,我已经将一个可执行文件包含在 tools
目录中,并将一个构建目标包含在进程中。
部分来自 nuspec
<files>
<file src="cgbr.targets" target="build\cgbr.targets" />
<file src="cgbr.json" target="content\cgbr.json" />
<file src="..\bin\CGbR.Lib.dll" target="lib\CGbR.Lib.dll" />
<file src="..\bin\cgbr.exe" target="tools\cgbr.exe" />
</files>
cgbr.targets
文件的内容
<?xml version="1.0" encoding="utf-8" ?>
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Target Name="BeforeBuild">
<Exec Command="cgbr.exe $(ProjectDir)"/>
</Target>
</Project>
现在,当我安装包时,我看到它包含在构建过程中。不幸的是 cgbr.exe
的路径无效,我有点卡住了。当然我可以使用 $(SolutionDir)packages\CGbR.0.3\tools\cgbr.exe
但每次更改版本时我都必须修改它。
澄清一下:我需要我的包工具路径的路径。
编辑:找到一个related post
您可能需要目标文件中该工具的相对路径。有多个predefined properties in msbuild。也许对这些场景最有用的是 MSBuildThisFileDirectory
,其中 returns 当前 proj 文件目录的完整路径。一个例子:
<Exec Command=""$(MSBuildThisFileDirectory)..\tools\cgbr.exe" "$(ProjectDir)""/>
我目前正在为我的 code generator project 打包一个 nuget 包,我已经将一个可执行文件包含在 tools
目录中,并将一个构建目标包含在进程中。
部分来自 nuspec
<files>
<file src="cgbr.targets" target="build\cgbr.targets" />
<file src="cgbr.json" target="content\cgbr.json" />
<file src="..\bin\CGbR.Lib.dll" target="lib\CGbR.Lib.dll" />
<file src="..\bin\cgbr.exe" target="tools\cgbr.exe" />
</files>
cgbr.targets
文件的内容
<?xml version="1.0" encoding="utf-8" ?>
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Target Name="BeforeBuild">
<Exec Command="cgbr.exe $(ProjectDir)"/>
</Target>
</Project>
现在,当我安装包时,我看到它包含在构建过程中。不幸的是 cgbr.exe
的路径无效,我有点卡住了。当然我可以使用 $(SolutionDir)packages\CGbR.0.3\tools\cgbr.exe
但每次更改版本时我都必须修改它。
澄清一下:我需要我的包工具路径的路径。
编辑:找到一个related post
您可能需要目标文件中该工具的相对路径。有多个predefined properties in msbuild。也许对这些场景最有用的是 MSBuildThisFileDirectory
,其中 returns 当前 proj 文件目录的完整路径。一个例子:
<Exec Command=""$(MSBuildThisFileDirectory)..\tools\cgbr.exe" "$(ProjectDir)""/>