मेरी Defines.wxi में मैं शामिल करें:MajorVersion आदि फ़ाइल नाम में (OutputName) (wix परियोजना) MSI फ़ाइल का निर्माण जब
<?define MajorVersion="1" ?>
<?define MinorVersion="08" ?>
<?define BuildVersion="11" ?>
मेरी MyProject.Setup.wixproj में मेरे पास है:
<OutputName>MyProject</OutputName>
<OutputType>Package</OutputType>
क्या किसी भी तरह फ़ाइल नाम में संस्करण चर शामिल करना संभव है, ताकि मेरी फ़ाइल को MyProject.1.08.11.msi नाम दिया जा सके?
यह काम नहीं किया है (जैसे कि कोई चर परिभाषित किया गया है):
<OutputName>MyProject-$(MajorVersion)</OutputName>
<OutputType>Package</OutputType>
यह काम नहीं किया है (जैसे कि कोई चर परिभाषित किया गया है):
<Target Name="AfterBuild" Condition="'$(Configuration)' == 'Release'">
<Copy SourceFiles="$(OutputPath)$(OutputName).msi" DestinationFiles="C:\$(OutputName)-$(MajorVersion).msi" />
</Target>
यह मेरे लिए बहुत स्पष्ट लगता है कि $ (MajorVersion) Defines.wxi फ़ाइल से परिभाषा लाने का सही तरीका नहीं है। क्या है? Defines.wxi में
<InstallerMajorVersion>7</InstallerMajorVersion>
<InstallerMinorVersion>7</InstallerMinorVersion>
<InstallerBuildNumber>7</InstallerBuildNumber>
...
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|x86' ">
<OutputPath>bin\$(Configuration)\</OutputPath>
<IntermediateOutputPath>obj\$(Configuration)\</IntermediateOutputPath>
<DefineConstants>PrebuildPath=..\..\obj\prebuild\web\;InstallerMajorVersion=$(InstallerMajorVersion);InstallerMinorVersion=$(InstallerMinorVersion);InstallerBuildNumber=$(InstallerBuildNumber)</DefineConstants>
</PropertyGroup>
और यह:
अद्यतन
मैं MyProject.Setup.wixproj में इस डालने की कोशिश की:
<?define MajorVersion="$(var.InstallerMajorVersion)" ?>
<?define MinorVersion="$(var.InstallerMinorVersion)" ?>
<?define BuildVersion="$(var.InstallerBuildNumber)" ?>
<?define Revision="0" ?>
<?define VersionNumber="$(var.InstallerMajorVersion).$(var.InstallerMinorVersion).$(var.InstallerBuildNumber)" ?>
या तो काम नहीं किया। इन त्रुटि संदेशों को मिला:
- उत्पाद/@ संस्करण विशेषता का मान, '..' मान्य संस्करण नहीं है। कानूनी संस्करण मान 'x.x.x.x' जैसा दिखना चाहिए जहां x 0 से 35534 से 0 पूर्णांक है।
- उत्पाद/@ संस्करण विशेषता नहीं मिली; यह आवश्यक है।
तो ... बहुत कोशिश करने के बाद, मैंने पाया कि यह वर्णन के अनुसार काम करता है, इसके अलावा ** defines.wxi ** आवश्यक नहीं है। हालांकि मैं थोड़ी देर के लिए अटक गया था क्योंकि मैंने वेब से '' बिट कॉपी-पेस्ट किया था, और किसी भी तरह एक विशेष चरित्र था या कुछ वीएस स्वीकार नहीं किया था - मुझे हमेशा 'var.InstallerMajorVersion नहीं मिला' त्रुटि मिली । सब के बाद यह महान काम करता है, imho वास्तव में सुरुचिपूर्ण समाधान! –
ने अभी एक और संभावित त्रुटि की पहचान की है: आप यह सुनिश्चित करना चाहते हैं कि '' टैग किसी अन्य 'PropertyGroup' में परिभाषित नहीं है, अन्यथा आपको' var.InstallerMajorVersion नहीं मिला 'त्रुटि मिलती है। –