【发布时间】:2011-01-25 03:23:58
【问题描述】:
我有一个 asp.net mvc 应用程序,我正在使用 Visual Studio 的发布功能发布,我有一个自定义 MSBuild 任务需要我发布到的目录,因此它知道将一些自定义构建文件复制到哪里。 . 我已经尝试过 $(OutDir)、$(PublishDirectory) 和其他一堆...我如何获得这条路径?
【问题讨论】:
标签: msbuild
我有一个 asp.net mvc 应用程序,我正在使用 Visual Studio 的发布功能发布,我有一个自定义 MSBuild 任务需要我发布到的目录,因此它知道将一些自定义构建文件复制到哪里。 . 我已经尝试过 $(OutDir)、$(PublishDirectory) 和其他一堆...我如何获得这条路径?
【问题讨论】:
标签: msbuild
我能够结合 $(ProjectDir) 和 $(PublishDir) 来获取发布文件夹。但是,我正在发布 SharePoint 应用程序,但我认为它也应该适用于其他情况。
例如调用程序
<Exec Command=""$(ProjectDir)\app.exe" "$(ProjectDir)$(PublishDir) ""/>
【讨论】:
$(PublishDir) 似乎评估为临时位置。当构建正在进行时(例如,用于 FTP 上传)需要此值时,这可能很有用。如果有人需要知道,$(PublishURL) 会计算为实际的目标文件夹。
对我来说有效的是:
$(PublishUrl)
我得到了我需要的东西:我的发布目录。
谢谢。
【讨论】:
$(MSBuildProjectDirectory)\$(PublishUrl)
您应该能够使用PackageArchiveRootDir 属性来解决这个问题。其默认值为obj\Debug\Package。因此,如果您需要完整路径,只需将 MSBuildProjectDirectory 与 PackageArchiveRootDir 结合起来,例如:$(MSBuildProjectDirectory)\$(PackageArchiveRootDir)。
【讨论】: