我有一个asp.net mvc应用程序,使用Visual Studio的Publish功能进行发布,并且我有一个自定义的MSBuild任务,需要该目录的路径,以便知道在哪里复制一些自定义构建文件...
我尝试了$(OutDir)、$(PublishDirectory)和许多其他选项... 我该如何获取这个路径?
我有一个asp.net mvc应用程序,使用Visual Studio的Publish功能进行发布,并且我有一个自定义的MSBuild任务,需要该目录的路径,以便知道在哪里复制一些自定义构建文件...
我尝试了$(OutDir)、$(PublishDirectory)和许多其他选项... 我该如何获取这个路径?
对我有效的是:
$(PublishUrl)
我得到了我所需要的:我的发布目录。
谢谢。
<Exec Command=""$(ProjectDir)\app.exe" "$(ProjectDir)$(PublishDir) ""/>
$(PublishDir)
似乎会评估为临时位置。如果在构建过程中需要此值(例如用于FTP上传),则这可能很有用。如果有人需要知道,$(PublishURL)
将评估为实际目标文件夹。 - Guillermo PrandiPackageArchiveRootDir
属性来解决这个问题。默认值为obj\Debug\Package
。因此,如果您需要完整的路径,只需将MSBuildProjectDirectory与PackageArchiveRootDir组合起来,如下所示:$(MSBuildProjectDirectory)\$(PackageArchiveRootDir)
。<Target Name="MyCustomPrePublishTarget" AfterTargets="PrepareForPublish">
<ItemGroup>
<PublishDir Include="$(PublishDir)" />
</ItemGroup>
<Message Importance="High" Text="Absolute PublishDir is: %(PublishDir.FullPath)" />
</Target>
$(MSBuildProjectDirectory)\$(PublishUrl)
。 - Guillermo Prandi