如何在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:*需要什么属性吗?
我也检查了堆栈溢出页面,并尝试了所有的建议,但他们没有工作。
为了解决这个问题,我在.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命令行参考