2012-11-29 91 views
0

變量不工作時,我有以下行的偉大工程集信息使用的MSBuild

<AssemblyInfo AssemblyInfoFiles="$(MSBuildProjectDirectory)\DesktopAgent\properties\AssemblyInfo.cs" 
       AssemblyCopyright="Copyright 2012 Alpine Access" 
       AssemblyVersion="1.0.0.56" 
       AssemblyFileVersion="1.0.0.56"> 
</AssemblyInfo> 

我嘗試,而不是在類似的行養活,但是,這並不工作

<AssemblyInfo AssemblyInfoFiles="$(MSBuildProjectDirectory)\DesktopAgent\properties\AssemblyInfo.cs" 
       AssemblyCopyright="Copyright 2012 Alpine Access" 
       AssemblyVersion="$(VersionNumber)" 
       AssemblyFileVersion="$(VersionNumber)"> 
</AssemblyInfo> 

版本編號在我的assemblyinfo文件是1.0.0.32所以在第一種情況下,我實際上看到它的變化,但第二種情況是不工作:(。

我有一個bat文件,它有這條線

msbuild /property:version=%1;anotherProperty=value project.build 

和我喜歡運行

build.bat 1.0.0.61 

的命令,它不工作:(。任何想法爲什麼它使用屬性時破壞?

回答

1

VersionNumber必須定義爲在項目文件的屬性:

<PropertyGroup> 
    <!-- properties --> 
    <VersionNumber Condition="'$(VersionNumber)' == ''">1.0.0.0</VersionNumber> 
    </PropertyGroup> 

然後命令必須設置相同屬性:

msbuild your.csproj /property:VersionNumber=%1