आप अपने .wixproj के आउटपुट नाम को अपडेट कर सकते हैं और संस्करण संख्या या किसी भी अन्य वैरिएबल को पार करने के लिए एमएसबिल्ड चर का उपयोग कर सकते हैं।
मेरे निर्माण स्क्रिप्ट इस तरह दिखता है:
set PRODUCTVERSION=7.1.0.1
MSBuild.exe /p:Configuration=Debug /p:ProductVersion=%PRODUCTVERSION% Installer.wixproj
और मेरी WiX परियोजना इस तरह दिखता है:
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">x86</Platform>
<ProductVersion>1.0.0.0</ProductVersion>
<ProjectGuid>{b7415c44-8d59-4ac2-b698-03e399a305e3}</ProjectGuid>
<SchemaVersion>2.0</SchemaVersion>
<OutputName>Installer.$(ProductVersion)</OutputName>
...
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|x86' ">
<OutputPath>bin\$(Configuration)\</OutputPath>
<IntermediateOutputPath>obj\$(Configuration)\</IntermediateOutputPath>
<DefineConstants>Debug</DefineConstants>
<WixVariables>ProductVersion=$(ProductVersion)</WixVariables>
</PropertyGroup>
...
</Project>
उत्पादन होगा:
Installer.7.1.0.1.msi
ठीक है, यह शायद काम करेगा। मैं कोशिश करूँगा। लेकिन मैं एक और सीधा रास्ता तलाश रहा था - या आपको लगता है कि यह wix में समर्थित नहीं है? मैंने यहां लिंकर चर के बारे में कुछ पढ़ा है: http://n2.nabble.com/Types-of-variables-question-td3825142.html ! (Wix.Name) जिसे WixVariables कहा जाता है (स्रोत कोड में परिभाषित किया जा सकता है WixVariable तत्व के साथ, या प्रकाश की कमांडलाइन पर पारित किया गया है और/या प्रीप्रोसेसर चर के रूप में उसी तरीके से जलाया जाता है जैसे मोमबत्ती को पारित किया जाता है)। लेकिन ऐसा लगता है कि यह काम नहीं करता है। – Jan
मैंने इस तरह से उल्लेख किया क्योंकि यह इसे संभालने का सबसे तेज़ और सरल तरीका है। कई अन्य विकास समस्याओं की तरह, हमेशा केआईएसएस को याद रखें। –
एमएसआई का नाम बदलना एक बुरा विचार है। ऐसा मत करो! http://blogs.msdn.com/b/robmen/archive/2004/12/08/278746.aspx – l33t