有人知道在Visual Studio中是否可以按项目设置WebProjectOutputDir吗?我希望能够在按下 Ctrl + Shift + B 时自动将我的Web项目构建到特定目录,但我也需要能够在我的构建脚本中覆盖此设置。
有人知道在Visual Studio中是否可以按项目设置WebProjectOutputDir吗?我希望能够在按下 Ctrl + Shift + B 时自动将我的Web项目构建到特定目录,但我也需要能够在我的构建脚本中覆盖此设置。
根据 Microsoft.WebApplications.targets
定义的 _CopyWebApplication
目标和 Microsoft.Common.targets
处理 OutDir
和 OutputPath
属性的方式,正确完成这项任务是不必要的麻烦。
如果您想要在项目文件中更改这个问题,那么您应该:
Microsoft.WebApplications.targets
后声明属性 WebProjectOutputDir
Microsoft.WebApplications.targets
前声明属性 OutDir
为什么要这样做有几个原因。
如果在导入语句之前声明了 WebProjectOutputDir
属性,则会被 Microsoft.WebApplications.targets
覆盖。因此,它必须在之后声明。
此外,在 Microsoft.WebApplications.targets
中,_CopyWebApplication
的定义如下:
<Target Name="_CopyWebApplication" Condition="'$(OutDir)' != '$(OutputPath)'" >
....
</Target>
看一下这个条件语句,你会发现如果OutDir
和OutputPath
的值相等,那么目标不会被执行。你不能只是改变OutputPath
,因为OutDir
是基于OutputPath
的,所以你必须改变OutDir
并确保它在导入该文件之前,因为其他属性是基于该属性构建的。
虽然不是最理想的解决方案,但希望能对你有所帮助。
...
<WebProjectOutputDir>.\</WebProjectOutputDir>
</PropertyGroup>
WebProjectOutputDir
变量,由于某些原因,默认情况下该变量未设置。 - Lukas Juhrich.\
在项目文件中的位置或与任何东西的关系。 - T.S.