通过NANT脚本中的msbuild命令发布者属性

时间:2014-02-28 08:30:30

标签: .net wpf msbuild clickonce nant

我编写了NANT构建脚本来部署我的clickOnce WPF应用程序。

我无法弄清楚的是,如何设置发布商参数......

这是在构建之后生成的清单的一部分:

<description asmv2:publisher="TestApplication" co.v1:suiteName="xOrg" asmv2:product="TestApplication" xmlns="urn:schemas-microsoft-com:asm.v1" />

我使用以下命令通过msbuild进行部署:

<target name="BuildTestApplication" depends="Clean" description="Build">
    <property name="publishFolderParameter" value="/p:PublishDir=${testPublishFolder}" />
    <echo message="Building..." />  
        <exec program="${msbuildExe}" workingdir="." verbose="true">
            <arg value="${projectFile}" />
            <arg value="/target:publish" />
            <arg value="${publishFolderParameter}" />
            <arg value="/property:ApplicationVersion=${version}" />
        </exec>
    <echo message="Built" />
</target>

如何通过msbuild参数更改 发布商属性

我尝试过添加:

<arg value="/property:Publisher=${publisherName}" />

<arg value="/property:PublisherName=${publisherName}" />

没有成功......

其他问题:安装应用程序后,开始菜单中的结构是什么(所有程序/ 某些名称)?

提前谢谢。

2 个答案:

答案 0 :(得分:3)

我想你错过了引号。尝试

<arg value="/property:PublisherName=&quot;${publisherName}&quot;" />

用于PublisherName和

<arg value="/property:ProductName=&quot;${productName}&quot;" />

表示应在开始菜单中设置快捷方式名称的ProductName。

答案 1 :(得分:3)

此属性由Microsoft.Common.targets中的<GenerateDeploymentManifest>目标设置。它使用PublisherName属性。

此属性在.csproj文件中设置。这里的诊断是它根本没有输入。容易出错,没有默认值。在Visual Studio,Project + Properties,Publish选项卡中打开.csproj文件。单击选项按钮,然后输入“发布者名称”:

enter image description here

其他领域也应该设定。如果您想在NANT脚本中出于某种原因覆盖此属性,那么必须使用硬编码字符串,您不能使用$ {publisherName}。