是否可以从Visual Studio命令窗口设置项目属性

时间:2017-10-29 10:04:30

标签: visual-studio

是否可以从Visual Studio命令窗口设置项目属性?如果它的窗口有限,或者我没有找到任何完整的文档,我就无法解决。

快速设置调试命令和参数很有用。

1 个答案:

答案 0 :(得分:1)

我认为该问题与基于MSBuild的项目有关,如csproj,vbproj,vcxproj以及Visual Studio通过MSBuild支持的其他项目类型。

您可以在直接调用MSBuild或使用环境变量时使用命令提示符设置几乎任何项目属性。如果使用命令启动构建:

msbuild /t:Build /p:Configuration=Debug;Platform=x64;OtherPropertyToSet=value

可以使用/p:PropertyName=value/property:PropertyName=value MSBuild命令行参数传递属性。对于其他属性,请检查MSBuild命令行参数。

也可以通过设置环境变量来设置项目属性。 MSBuild项目文件语法允许以与使用项目变量值完全相同的方式检索环境变量的值。因此,如果可以覆盖属性而不是设置具有所需值的环境变量,则还将设置项目属性值。

MSBuild项目文件语法提供了几个扩展点,可用于包含外部.props.targets文件,这些文件可能允许对项目属性进行更复杂的修改。可以根据在命令行上设置的项目属性来包含它们。

覆盖项目属性值存在一些限制,特别是无法覆盖保留的MSBuild属性 - 对于当前列表,请参阅MSBuild Reserved and Well-Known Properties

例如,如何从命令行创建和使用复杂的MSBuild项目,请查看DotNet CoreCLR repo,特别是有* .cmd扩展名的文件。

下面您将找到用户文件的片段,该文件确定开始调试项目的可执行文件以及要使用的命令行参数。尝试通过/p:PropertyName=value MSBUild参数传递它们。

<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|AnyCPU'">
    <StartAction>Program</StartAction>
    <StartProgram>C:\Windows\System32\ping.exe</StartProgram>
    <StartArguments>stackoverflow.com</StartArguments>
  </PropertyGroup>
</Project>