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

时间:2011-07-02 18:48:42

标签: .net msbuild

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

<Example Include="Example.dll" />

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

例如假设我有:

C:\lib\Example.dll
C:\lib\Example.targets
C:\src\Example.csproj

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

1 个答案:

答案 0 :(得分:7)

在.targets文件中,使用此

<Example Include="$(MSBuildThisFileDirectory)\Example.dll" />

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