首页 > 解决方案 > 从命令行为 Visual Studio 项目创建新配置

问题描述

我想从命令行为 Visual Studio 项目创建一个配置,以便自动化我的发布过程。通常,您会进入 Visual Studio,创建一个新配置,在下拉菜单中选择要从中复制的构建(在我的情况下,这将是发布)并选择平台。我想从命令行做同样的事情。

我尝试了以下方法: MSBuild <mysolution>.sln -p:Configuration=<newconfigname>

但是我收到 MSB4126 错误,告诉我配置无效。我还阅读了有关 MSBuild 的文档,但它没有说明这一点。我什至不确定这是否可以使用 MSBuild 来实现。我正在使用 Wix 安装程序来编译一个 .msi,它可以完美地工作,但它正在构建发布配置,而不是我想要构建的配置(自定义发布)。

任何人都可以对这个问题有所了解吗?

标签: visual-studiomsbuildwix

解决方案


我通过修改一些文件来解决它。

您需要修改.sln文件以添加发布类型:

NewRelease|Any CPU = NewRelease|Any CPU
NewRelease|ARM = NewRelease|ARM
NewRelease|x64 = NewRelease|x64
NewRelease|x86 = NewRelease|x86

如果您有子模块,也请添加它们。如果您对需要添加的内容有疑问,请在 Visual Studio 中创建一个新配置,然后从您使用 Visual Studio 创建的配置中复制粘贴,在需要时仅更改配置的名称。

您需要修改主项目的.csproj文件(不是 WixInstaller 文件),例如:

<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'NewRelease|AnyCPU'">
    <OutputPath>bin\NewRelease\</OutputPath>
    <DefineConstants>TRACE</DefineConstants>
    <Optimize>true</Optimize>
    <DebugType>pdbonly</DebugType>
    <PlatformTarget>AnyCPU</PlatformTarget>
    <ErrorReport>prompt</ErrorReport>
    <CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
    <Prefer32Bit>true</Prefer32Bit>
</PropertyGroup>

而且,再一次,如果您有子模块,您必须修改每个.csproj文件以包含您的新版本(从其他版本复制)。

最后,编译它: MSBuild <yourmainproject>.csproj -p:Configuration=NewRelease.


推荐阅读