如何在msbuild命令行参数中设置publishName/AssemblyName

本文关键字:设置 publishName AssemblyName 参数 msbuild 命令行 | 更新日期: 2023-09-27 17:53:33

您要发布的应用程序有两个名称,productName和publishName (publishName/AssemblyName我认为它们是相同的)。这两个都可以在.csproj文件中指定。

我想在不使用MSBuild的命令行参数更改.csproj文件的情况下设置这两个。到目前为止,我已经使用了msdn的这个页面,并弄清楚了如何更改产品名称。

MSBuild.exe /t:Build /p:ProductName=$productName. 

如何以类似的方式更改publishName ?

当我说publishName时,我指的是用.application扩展名创建的文件。有人知道这个/p:*需要什么属性吗?

我也检查了堆栈溢出页面,并尝试了所有的建议,但他们没有工作。

如何在msbuild命令行参数中设置publishName/AssemblyName

为了解决这个问题,我在.csproj文件中添加了我自己的变量来控制.exe的名称(而不影响子项目构建的名称):

<!-- Make the assembly name configurable -->
<AssemblyName Condition=" '$(MSBuildAssemblyName)' == '' ">MyDefaultAssemblyName</AssemblyName>
<AssemblyName Condition=" '$(MSBuildAssemblyName)' != '' ">$(MSBuildAssemblyName)</AssemblyName>

如果命令行上没有指定MSBuildAssemblyName,它使用默认名称(MyDefaultAssemblyName)。

在命令行中,像这样调用它:msbuild……/p: MSBuildAssemblyName = MyOverriddenName…

不要包含引号!

MSBuild.exe /t:Build /p:ProductName=$productName;AssemblyName=yourNameHere

此外,如果您在相同的解决方案中有另一个项目,这将不起作用-两者将获得相同的程序集名称!

尝试如下:

MSBuild.exe /t:Build /p:ProductName=$productName;AssemblyName="yourNameHere"

取自MSBuild命令行参考