繁体   English   中英

Visual Studio发布MSdeploy $(SolutionDir)

[英]Visual Studio Publish MSdeploy $(SolutionDir)

我在使用MSDeploy和Visual Studio的发布配置文件时遇到麻烦的问题。 在我的项目中,我有一个属性组,我设置了一个项目供以后参考。

<LocalBuildLocation>$(SolutionDir)WebSites\MyWebSite\</LocalBuildLocation>

不幸的是,Visual Studio将从该属性中随机删除$(SolutionDir)字符串,并且我的构建将失败。 我将其手动复制回去,一切顺利。

谁能想到这个项目为何会不断将其移除?

MSDN:在程序集中使用项目属性并包含指令

$(SolutionDir)这样的Visual Studio宏在MSBuild中不起作用。 您可以改用项目属性。

使用$(ProjectDir) (更安全的项目级别属性)或$(MSBuildProjectDirectory) (最安全,始终存在)

请参阅: $(SolutionDir)MSBuild属性不正确,当通过CMD运行Sandcastle帮助文件生成器在vcproj文件中获取$(ProjectDir),$(SolutionDir)的值时

看起来$SolutionDir (有时)可以与MSBuild一起使用,但是仅当您从解决方案文件进行构建时。 大多数情况下,它与$ProjectDir相同。

但是,您不应在MSBuild中使用它们。 即使它们有时起作用-这也不可靠。 正如另一个答案所指出的那样:

像$(SolutionDir)这样的Visual Studio宏在MSBuild中不起作用。 您可以改用项目属性。

来源: 构建过程中的代码生成

$(ProjectDir)项目的目录(定义为驱动器+路径); 包括结尾的反斜杠“ \\”。

$(SolutionDir)解决方案的目录(定义为驱动器+路径); 包括结尾的反斜杠“ \\”。

注意:

您可以在接受字符串的项目的“属性页”对话框中的任何位置使用这些宏。

来源: 构建命令和属性的宏

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM