このようなプロジェクト構造がある場合:
_\MySolution
\MyProject
ReadMe.md
\build
MyProject.targets
_
_MyProject.targets
_ファイルで使用される場合、$(MSBuildThisFileDirectory)
の値はどうなりますか?
ソリューションフォルダーがC:ドライブのルートにあると仮定すると、そうなりますか?..
_c:\MySolution\MyProject\build\
_
_MyProject.targets
_ファイルで、$(MSBuildThisFileDirectory)
を使用して_ReadMe.md
_ファイルをどのように参照しますか?
追加情報:
MyProject.targetsは次のようになります。
_<Project xmlns="http://schemas.Microsoft.com/developer/msbuild/2003">
<ItemGroup>
<None Include="$(MSBuildThisFileDirectory)\xxx\ReadMe.md">
<Link>FrameworkTests.feature</Link>
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
<CustomToolNamespace></CustomToolNamespace>
</None>
</ItemGroup>
</Project>
_
MSBuildThisFileDirectoryの価値は何ですか?
それはあなたのMyProject.targets
。この変数の文字通りの意味によると、ThisFileDirectory
が「このファイルディレクトリ」を意味することがわかります。
ファイルでこの引数を使用しているので、MyProject.targets
、パスは「このファイル」の場所に関連する必要がありますMyProject.targets
。したがって、この引数の値はこのファイルのディレクトリMyProject.targets
。
Nugetのインストール後、ファイルMyProject.targets
をパスに追加する必要があります。
c:\MySolution\packages\MyProject.1.0.0<YouPackagefolder>\build
ターゲットを使用してプロジェクトファイルにその値を出力し、これを達成するためにプロジェクトをアンロードできます。次に、プロジェクトの最後、終了タグの直前</project>
、スクリプトの下に配置:
<Target Name="TestValue" AfterTargets="build">
<Message Text="@(none)">
</Message>
</Target>