5

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

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

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

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

当我说 publishName 时,我指的是使用 .application 扩展名创建的文件。任何人都知道我需要什么属性 - /p:*?

我还查看了Stack Overflow 页面并尝试了那里的所有建议,但没有奏效。

4

3 回答 3

8

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

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

如果未在命令行中指定 MSBuildAssemblyName,则使用默认名称 (MyDefaultAssemblyName)。

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

于 2018-02-06T09:59:48.737 回答
3

不要包括引号!

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

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

于 2015-12-03T06:38:32.433 回答
0

尝试以下操作:

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

这取自MSBuild 命令行参考

于 2013-01-15T17:24:15.237 回答