Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/mercurial/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用Svn版本任务设置vb项目的版本_Svn_Msbuild_Assemblyinfo - Fatal编程技术网

如何使用Svn版本任务设置vb项目的版本

如何使用Svn版本任务设置vb项目的版本,svn,msbuild,assemblyinfo,Svn,Msbuild,Assemblyinfo,我有一个VisualStudio2008解决方案,其中主输出exe是一个VB.Net Winforms exe,其中有多个VB.Net和C#dll从同一个解决方案链接。整个解决方案由subversion进行版本控制 现在,我想自动更新生成的文件与当前的svn版本号。 为此,我发现了这个简洁的项目: 您还需要MSBuild.community.Tasks才能使其正常工作 有一个msbuild示例介绍了如何更新我使用的解决方案中每个项目的版本号: <Import Project="$(MS

我有一个VisualStudio2008解决方案,其中主输出exe是一个VB.Net Winforms exe,其中有多个VB.Net和C#dll从同一个解决方案链接。整个解决方案由subversion进行版本控制

现在,我想自动更新生成的文件与当前的svn版本号。 为此,我发现了这个简洁的项目: 您还需要MSBuild.community.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>
可能该任务不支持VB.Net。
但是可能有人对此有一个解决方案…

如果您查看UpdateVersion任务源代码,您应该知道它使用正则表达式来解析AssemblyInfo文件,因此如果它不能与vb文件一起工作,也就不足为奇了

只能使用MSBuild.Community.Tasks执行所需操作:

  • svversion获取修订版(也可以使用svversionTasks中的SvnGetProperty任务)
  • AssemblyInfo生成具有正确版本的程序集信息。此任务处理VB

如果您查看UpdateVersion任务源代码,您应该知道它使用正则表达式来解析AssemblyInfo文件,因此如果它不能与vb文件一起使用,也就不足为奇了

只能使用MSBuild.Community.Tasks执行所需操作:

  • svversion获取修订版(也可以使用svversionTasks中的SvnGetProperty任务)
  • AssemblyInfo生成具有正确版本的程序集信息。此任务处理VB

我知道,目前我正在使用SvVersion更新我的项目(很抱歉,我没有提到这一点),但由于AssemblyInfo文件位于repo中,因此它们总是标记为已更改。Svn版本任务也支持部署项目。现在,我在生成之前将修订设置为我的svn修订,并在生成之后将其设置为零,这样,如果我提交更改,文件将保持不变。我知道,目前我正在使用SvnVersion更新我的项目(很抱歉,我没有提到这一点),但由于AssemblyInfo文件位于repo中,因此它们都标记为已更改。Svn版本任务也支持部署项目。现在,我在构建之前将修订设置为我的svn修订,在构建之后将修订设置为零,这样,如果我提交更改,文件将保持不变。
  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.