在MSBuild中获取发布目录

Sha*_*ane 12 msbuild

我有一个asp.net mvc应用程序,我发布Visual Studio的发布功能,我有一个自定义MSBuild任务,需要我发布的目录,所以它知道在哪里复制一些自定义构建文件...我'我试过$(OutDir),$(PublishDirectory)和其他一些人...我怎么得到这条路?

小智 10

对我来说有用的是:

$(PublishUrl)
Run Code Online (Sandbox Code Playgroud)

我得到了我需要的东西:我的发布目录.

谢谢.


小智 5

我能够组合 $(ProjectDir) 和 $(PublishDir) 来获取发布文件夹。但是,我正在发布 SharePoint 应用程序,但我认为它也应该适用于其他情况。

例如调用一个程序

<Exec Command="&quot;$(ProjectDir)\app.exe&quot; &quot;$(ProjectDir)$(PublishDir) &quot;"/>
Run Code Online (Sandbox Code Playgroud)

  • 发布到本地文件夹时,“$(PublishDir)”似乎计算为临时位置。当构建过程中需要此值时(例如,用于 FTP 上传),这可能很有用。如果有人需要知道,“$(PublishURL)”将计算为实际的目标文件夹。 (2认同)

Say*_*imi 1

您应该能够使用该PackageArchiveRootDir属性来解决该问题。默认值为obj\Debug\Package。因此,如果您需要完整路径,只需将 MSBuildProjectDirectory 与 PackageArchiveRootDir 组合起来,例如:$(MSBuildProjectDirectory)\$(PackageArchiveRootDir)