[英]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.