Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2012/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/wix/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Visual studio 2012 如何以编程方式设置Wix OutputName_Visual Studio 2012_Wix_Windows Installer - Fatal编程技术网

Visual studio 2012 如何以编程方式设置Wix OutputName

Visual studio 2012 如何以编程方式设置Wix OutputName,visual-studio-2012,wix,windows-installer,Visual Studio 2012,Wix,Windows Installer,我们有一个Wix捆绑项目,现在需要生产我们产品的OEM品牌版本。我希望使用相同的捆绑包项目来生产基础产品和品牌捆绑包,而不是创建第二个捆绑包项目 我熟悉Wix本地化功能WXL文件,看起来我可以用它来实现,但是我被WIXPROJ中定义的bundle EXE的OutputName卡住了;品牌版本需要有不同的名称。也就是说,同一个bundle项目应该同时生成BrandedBundle.exe和BaseProductBundle.exe 有没有一种方法可以使用本地化功能以编程方式设置OutputName

我们有一个Wix捆绑项目,现在需要生产我们产品的OEM品牌版本。我希望使用相同的捆绑包项目来生产基础产品和品牌捆绑包,而不是创建第二个捆绑包项目

我熟悉Wix本地化功能WXL文件,看起来我可以用它来实现,但是我被WIXPROJ中定义的bundle EXE的OutputName卡住了;品牌版本需要有不同的名称。也就是说,同一个bundle项目应该同时生成BrandedBundle.exe和BaseProductBundle.exe


有没有一种方法可以使用本地化功能以编程方式设置OutputName?

我不知道如何使用本地化功能,但还有另一种方法可以做到这一点

您可以将生成参数传递给msbuild

msbuild WiXInstaller.wixproj /t:Rebuild /p:DesiredName="OEMName"
如果wixproj中的输出名称定义如下:

Application-$(DesiredName)
那么您的输出实际上是:Application-OEMName.msi

然后,如果需要,您可以将构建配置为运行一系列不同的OEM

msbuild WiXInstaller.wixproj /t:Rebuild /p:DesiredName="OEMOne"
msbuild WiXInstaller.wixproj /t:Rebuild /p:DesiredName="OEMTwo"
msbuild WiXInstaller.wixproj /t:Rebuild /p:DesiredName="OEMThree"
它将运行构建三次,每次都有自己的输出名称:

Application-OEMOne.msi
Application-OEMTwo.msi
Application-OEMThree.msi

祝您好运。

进一步查看后,我发现捆绑包的“项目属性”页面中的“要构建的区域性”字段被禁用,因此捆绑包似乎不支持本地化

我确实在这里找到了一些建议:,但似乎不可能实现我想做的事情—使用本地化更改OutputName