2014-01-13 40 views
0

我是WiX的新手,在實現我認爲應該非常簡單的事情時遇到了一些麻煩。我在Visual Studio 2013中使用了WiX v3.8。總體而言,我試圖完成的是有一個地方可以更改安裝程序的版本,並將在整個WiX項目中傳播。在WiX中添加版本以進行構建後事件

在維克斯項目的項目屬性=>生成標籤=>「定義處理器變量」文本框,我有: ProjectVersion=3.6.7.0

然而,當我遇到問題是在生成後事件時失敗:

copy !(TargetPath) "C:\Development\Release Builds\MyProject\$(TargetName) $(var.ProjectVersion)$(TargetExt)"

我一直在網上淘的,但無法找到一個解決我的問題。也許我只是不知道該問什麼?

我的問題是:如何使這個後生成事件的工作?我究竟做錯了什麼?我想要做的就是在構建後事件中輕鬆更改ProjectVersion變量或其他此類變量。

回答

3

這不完全是你要求的,但也許它可以幫助你實現你想要的東西?

我這樣做比你的方法略有不同。我從wix安裝程序捆綁的'main'程序集中讀取版本,將msi文件名重命名爲包含版本字符串,然後在生成後事件中對其進行簽名。

資源:

https://stackoverflow.com/a/19371257/767926

https://stackoverflow.com/a/12323770/767926

要重命名MSI包含在文件名中的版本(wixproj):

<Target Name="BeforeBuild"> 
    <GetAssemblyIdentity AssemblyFiles="$(SolutionDir)'HARDCODED PATH'\bin\$(Configuration)\'HARDCODED NAME OF ASSEMBLY'"> 
     <Output TaskParameter="Assemblies" ItemName="AssemblyVersions" /> 
    </GetAssemblyIdentity> 
    <CreateProperty Value="$(OutputName).%(AssemblyVersions.Version)"> 
     <Output TaskParameter="Value" PropertyName="TargetName" /> 
    </CreateProperty> 
    <CreateProperty Value="$(TargetName)$(TargetExt)"> 
     <Output TaskParameter="Value" PropertyName="TargetFileName" /> 
    </CreateProperty> 
    <CreateProperty Value="$(TargetDir)$(TargetFileName)"> 
     <Output TaskParameter="Value" PropertyName="TargetPath" /> 
    </CreateProperty> 
</Target> 

到重命名後簽署MSI( wixproj):

<PropertyGroup> 
    <PostBuildEvent>"C:\Program Files\Microsoft SDKs\Windows\v7.0A\Bin\signtool.exe" sign /sha1 'CERTIFICATEHASH' /v /t http://timestamp.verisign.com/scripts/timstamp.dll /d "DESCRIPTION" "$(ProjectDir)\bin\$(ConfigurationName)\'HARCODED PARTIAL MSI NAME'@(AssemblyVersions->'%(Version)').msi"</PostBuildEvent> 
</PropertyGroup> 

手動添加這一點很重要/編輯在wixproj文件這個生成後事件(使用編輯器),如果你使用的GUI它會搞砸了:

@(AssemblyVersions->'%(Version)') 

另外,如果你想請簽署您的MSI,確保您爲MSI添加說明,否則UAC提示將顯示一個臨時文件名。資源:http://kentie.net/article/wixtipstricks/

+1

太棒了!謝謝,這真的幫助我回答我的問題。但是,標記和標記之間有什麼區別?這讓我困惑。 – Justin

+1

stackoverflow有所有的答案;)http://stackoverflow.com/a/6128761/767926 – jmelhus

+0

它幫助了我很多。感謝一百萬人! – Saxophonist

相關問題