Mat*_*ord 8 msbuild web-applications visual-studio
根据每个项目,是否有人知道您是否可以在Visual Studio中设置WebProjectOutputDir.我想能够拥有它,以便当我点击Ctrl+ Shift+ B它自动将我的web项目构建到特定目录,但我还需要能够在我的构建脚本中覆盖它.
Say*_*imi 16
根据定义目标的方式以及如何处理和属性来正确地执行此操作是不必要的尴尬.Microsoft.WebApplications.targets
_CopyWebApplication
Microsoft.Common.targets
OutDir
OutputPath
如果要在项目文件中更改它,那么您应该:
WebProjectOutputDir
导入后声明属性Microsoft.WebApplications.targets
OutDir
在导入之前声明属性Microsoft.WebApplications.targets
您必须这样做有几个原因.
Microsoft.WebApplications.targets
将覆盖WebProjectOutputDir
在import语句之前声明的任何声明.因此它必须追随.
还内侧Microsoft.WebApplications.targets
的_CopyWebApplication
定义如下:
<Target Name="_CopyWebApplication" Condition="'$(OutDir)' != '$(OutputPath)'" >
....
</Target>
Run Code Online (Sandbox Code Playgroud)
看一下这个条件,你就会看到如果OutDir
且OutputPath
等于相同的值就不会执行目标.您不能只更改OutputPath,因为OutDir
它基于OutputPath
,因此您必须更改OutDir
并确保它在导入到该文件之前,因为其他属性是基于该属性构建的.
不太理想,但希望能帮到你.
小智 6
我在使用Visual Studio for Mac编译Umbraco项目时遇到了这个问题。构建将发出以下错误:
错误 MSB4044:未为“KillProcess”任务指定所需参数“ImagePath”的值
它在编译 Rosyln 等时为WebProjectOutputDir返回一个空值。 只有解决方案中的 web 项目正在编译这些项目,所以我手动编辑了 web 项目 csproj 文件,并将以下内容添加到文件顶部的全局中:
...
<WebProjectOutputDir>.\</WebProjectOutputDir>
</PropertyGroup>
Run Code Online (Sandbox Code Playgroud)
问题解决了。
归档时间: |
|
查看次数: |
7141 次 |
最近记录: |