msbuild .targets文件中ItemGroup项的相对路径

jus*_*ase 1 .net msbuild

我在同一目录中有.dll和.targets文件.在.targets文件中,我想将.dll添加到ItemGroup项.但是,如果我只是添加它类似于:

<Example Include="Example.dll" />
Run Code Online (Sandbox Code Playgroud)

Example.dll的路径似乎是相对于包含.targets文件的.csproj进行解析.如何将项目添加到.targets文件中的ItemGroup,并使用这样的相对路径?

例如,假设我有:

C:\lib\Example.dll
C:\lib\Example.targets
C:\src\Example.csproj
Run Code Online (Sandbox Code Playgroud)

从.targets文件中包含Example.dll时,完整路径解析C:\src\Example.dll为错误,我想要的是C:\lib\Example.dll.有没有人有什么建议?

Bri*_*ler 7

在.targets文件中,使用此,

<Example Include="$(MSBuildThisFileDirectory)\Example.dll" />
Run Code Online (Sandbox Code Playgroud)

...保留属性将解析为.targets文件所在的目录,而不是导入.targets文件的项目文件,这是相对路径解析的默认值.