2010-05-03 91 views
2

我有一個Visual Studio 2008解決方案,其中主輸出exe是一個VB.Net Winforms exe文件,其中有幾個VB.Net和C#dll從相同的解決方案鏈接。整個解決方案在版本控制下進行顛覆。如何使用Svn版本任務設置vb項目的版本

現在我想通過生成的文件自動更新當前svn版本號。 爲此目的,我發現這個整潔的項目:http://svnversiontasks.codeplex.com/ 你也需要MSBuild.Communuity.Tasks這個工作。

有關於如何更新轉數在解決方案中的每一個項目,我用的MSBuild例如:

<Import Project="$(MSBuildExtensionsPath)\SvnTools.Targets\SvnTools.Tasks.VersionManagement.Tasks" /> 
    <Target Name="build"> 
    <CreateItem Include="../**/AssemblyInfo.vb;../**/AssemblyInfo.cs;../**/Properties/AssemblyInfo.cs"> 
     <Output TaskParameter="Include" ItemName="AssemblyInfoFiles" /> 
    </CreateItem> 
    <CreateItem Include="../**/*.vdproj;*.vdproj"> 
     <Output TaskParameter="Include" ItemName="DeploymentProjectFiles" /> 
    </CreateItem> 
    <UpdateVersion AssemblyInfoFiles="@(AssemblyInfoFiles)" DeploymentProjectFiles="@(DeploymentProjectFiles)" Format="yyyy.mm.dd.rev" /> 
    <Exec Command="&quot;$(VS90COMNTOOLS)..\IDE\devenv&quot; ..\MyApp.sln /build" /> 
    <RevertVersionChange AssemblyInfoFiles="@(AssemblyInfoFiles)" DeploymentProjectFiles="@(DeploymentProjectFiles)" /> 
    </Target> 

我修改了原有的文件還包括AssemblyInfo.vb文件,並將其保存作爲一個msbuild.proj文件。

但是,如果我從控制檯執行的MSBuild我看到C#項目被更新(我也可以證實,從輸出DLL的屬性,但我的VB項目保持不變:

Reverting version number change: ../App1\AssemblyInfo.vb 
    Updating version number (to rev 0) for file: ../App1\AssemblyInfo.vb 
D:\Source\MyApp\MyAppDeploy\MyAppDeploy.csproj : warning : Version attribute not found, file not updated. 

    Reverting version number change: ../App2\Properties\AssemblyInfo.cs 
    Updating version number (to rev 0) for file: ../App2\Properties\AssemblyInfo.cs 
    Successfully updated file. 

也許任務不支持VB.Net 但也許有人有這個解決方案...

回答

0

如果你看看UpdateVersion任務源代碼,你應該使用正則表達式來解析AssemblyInfo文件,所以它並不奇怪,如果它不' t使用vb文件。

你可以做你想做的,只是使用MSBuild.Community.Tasks:

  • svnversion,如果得到修訂(你也可以使用從SvnVersionTasks的SvnGetProperty任務)
  • 集信息生成有正確版本的組裝信息。這個任務處理VB。
+0

我知道,目前我使用SvnVersion更新我的項目(對不起,我沒有提到過),但由於AssemblyInfo文件在回購中,它們總是標記爲已更改。 Svn版本任務也支持部署項目。 – 2010-05-03 14:13:30

+0

好吧,AssemblyInfo任務的提示是個好主意。現在我在build之前將修訂版本設置爲我的svn-revision,並在build之後回到零,所以如果我提交我的更改,文件將保持不變。 – 2010-05-07 22:09:50

相關問題