C# TFS在生成后发布csproj
我正在开发一个VSTO插件,我们通过下面的csproj设置对话框将其发布到网络共享 例如,要发布,我们只需单击“立即发布”,它将为VSTO加载项(how?似乎是automagic)创建一个安装程序并传输到网络共享C# TFS在生成后发布csproj,c#,visual-studio-2010,visual-studio-2012,tfs,csproj,C#,Visual Studio 2010,Visual Studio 2012,Tfs,Csproj,我正在开发一个VSTO插件,我们通过下面的csproj设置对话框将其发布到网络共享 例如,要发布,我们只需单击“立即发布”,它将为VSTO加载项(how?似乎是automagic)创建一个安装程序并传输到网络共享 好的,到目前为止很好。所以我的问题是,如何通过TFS构建配置调用这个发布操作?到目前为止,我已经看到可以通过MSBuild发布,但是TFS(成功构建时自动发布)呢 创建自定义生成并创建自己的msbuild项目文件 但一旦您成功发布,您将无法管理由VisualStudio增加的发布数量
好的,到目前为止很好。所以我的问题是,如何通过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>
非常感谢,我们已经通过MSBuild发布了,但没有增加版本号。我试试这个