簡體   English   中英

TFS在構建后發布csproj

[英]TFS publish csproj after build

我正在開發VSTO插件,我們將通過下面的csproj設置對話框將其發布到網絡共享。

在此處輸入圖片說明

例如,要發布,我們只需單擊“立即發布”,它會為VSTO加載項創建一個安裝程序(怎么辦?似乎是自動的)並轉移到網絡共享中。

好的,到目前為止很好。 所以我的問題是,如何通過TFS構建配置調用此發布操作? 到目前為止,我已經看到您可以通過MSBuild發布,但是TFS(成功構建后自動發布)又如何呢?

創建一個自定義版本並創建自己的msbuild項目文件。

但是,一旦成功發布,您將無法管理由VisualStudio遞增的發布號,並且您必須自己做。 之后,您將有問題需要將此更改簽入TFS。...

一些幫助 :

  <Target Name="Publish" >
    <MSBuild Projects="$(ProjectFile)" Targets="Publish" BuildInParallel="true" Properties="Configuration=Release;ImportProjectFile=true;PublishDir=..\$(LocalPublishFolder)\;PublishUrl=$(PublishFolder);InstallUrl=$(PublishFolder);UpdateUrl=$(PublishFolder)" > <!--ApplicationVersion=$(ApplicationVersion);-->
      <Output ItemName="ProjectOutputs" TaskParameter="TargetOutputs"/>
    </MSBuild>
    <UpdateApplicationRevision ProjectFilePath="$(Project2Publish)" />
    <ItemGroup>
      <_CopyItems Include="$(LocalPublishFolder)\**\*.*" />
    </ItemGroup>
    <Copy SourceFiles="@(_CopyItems)" DestinationFiles="@(_CopyItems->'$(PublishFolder)\%(RecursiveDir)%(Filename)%(Extension)')" />
    <RemoveDir Directories="$(LocalPublishFolder)" />
  </Target>


<UsingTask TaskName="UpdateApplicationRevision" TaskFactory="CodeTaskFactory" AssemblyFile="$(MSBuildToolsPath)\Microsoft.Build.Tasks.v4.0.dll">
   <ParameterGroup>
        <ProjectFilePath ParameterType="System.String" Required="true" />
    </ParameterGroup>
        <Task>
          <Reference Include="$(MSBuildToolsPath)\Microsoft.Build.dll" />
          <Reference Include="System.Xml" />
        <Code Type="Fragment" Language="cs">
            <![CDATA[
      var project = new Microsoft.Build.Evaluation.Project(ProjectFilePath);
      var property = project.GetProperty("ApplicationRevision");
      property.UnevaluatedValue = "" + (System.Int32.Parse(property.EvaluatedValue) + 1);
      project.Save();
]]>
        </Code>
    </Task>
</UsingTask>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM