我在同一目录中有.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
。有没有人有任何建议?
答案 0 :(得分:7)
在.targets文件中,使用此
<Example Include="$(MSBuildThisFileDirectory)\Example.dll" />
...保留属性将解析为.targets文件所在的目录,而不是导入.targets文件的项目文件,这是相对路径解析的默认值。