gpt4 book ai didi

msbuild - 将 AfterBuild 目标移动到 .targets 文件

转载 作者:行者123 更新时间:2023-12-05 01:29:11 24 4
gpt4 key购买 nike

我有一个 AfterBuild 目标,我想将其用于解决方案中的多个项目。有没有办法可以将该目标放入 .targets 文件并在每个项目中引用该文件。

以下是我尝试过的似乎不起作用的内容。

项目文件:

<Import Project="..\debug.targets"/>

.目标文件:
    <Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Target Name="AfterBuild">
<PropertyGroup>
<WebsiteDirectory>C:\Inetpub\wwwroot</WebsiteDirectory>
</PropertyGroup>

<ItemGroup>
<output Include=".\**\*.dll" Exclude=".\**\obj\**" />
<output Include=".\**\*.pdb" Exclude=".\**\obj\**" />
<output Include=".\**\*.svc" />
<output Include=".\**\*.xap" />
<output Include=".\**\*.aspx" />
<output Include=".\**\*.js" />
<output Include=".\**\*.config" />
</ItemGroup>

<PropertyGroup>
<VirtualDirectoryPath>$(WebsiteDirectory)\$(RootNamespace)</VirtualDirectoryPath>
</PropertyGroup>

<copy SourceFiles="@(output)" DestinationFiles="@(output->'$(VirtualDirectoryPath)\%(RecursiveDir)%(Filename)%(Extension)')" />
</Target>

最佳答案

用这个

<Import Project="$(MSBuildThisFileDirectory)\debug.targets"/> 
$(MSBuildThisFile) = 当前项目文件。 $(MSBuildThisFileDirectory) = 包含当前项目文件的目录。

项目文件中的相对路径难以使用,具体取决于调用项目文件的内容。直接使用 msbuild 并且相对路径将解析为项目文件。使用VS,相对路径将使用解决方案文件作为基本路径。

使用 $(MSBuildThisFileDirectory)将强制相对路径使用预先确定的起始路径。您需要做的就是填写相对路径的其余部分。

关于msbuild - 将 AfterBuild 目标移动到 .targets 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10239873/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com