我使用来自https://github.com/kzu/GitInfo的GitInfo nuget包在我的Web应用程序中提供分支和提交信息。在ASP.NET网站.pubxml文件中使用'gitinfo'MSBuild变量?
我有一个发布配置文件设置为部署到文件系统,我想在路径中包含git分支名称。我试图改变这条线在pubxml文件:
<publishUrl>C:\Development\Web\Publish_$(GitBranch)</publishUrl>
......但是“$(GitBranch)”被忽略了(网站已成功发布到“Publish_”文件夹)。我使用的是“发布...”向导在Visual Studio 2015年发布
我的网站vbproj文件有以下进口和目标:
<Import Project="$(MSBuildToolsPath)\Microsoft.VisualBasic.targets" />
<PropertyGroup>
<PreBuildEvent />
<PostBuildEvent />
</PropertyGroup>
<Import Project="packages\GitInfo.2.0.3\build\GitInfo.targets" Condition="Exists('packages\GitInfo.2.0.3\build\GitInfo.targets')" />
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
<PropertyGroup>
<ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText>
</PropertyGroup>
<Error Condition="!Exists('packages\GitInfo.2.0.3\build\GitInfo.targets')" Text="$([System.String]::Format('$(ErrorText)', 'packages\GitInfo.2.0.3\build\GitInfo.targets'))" />
</Target>
<Import Project="$(VSToolsPath)\WebApplications\Microsoft.WebApplication.targets" Condition="'$(VSToolsPath)' != ''" />
<Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(MSBuildToolsVersion)\WebApplications\Microsoft.WebApplication.targets" Condition="false" />
就是我想要做的可能吗?
感谢您的回答。我添加了'UsingTask'和一个Target来设置一个环境变量。我可以看到变量已经从命令提示符正确设置。我在pubxml中使用了var:' C:\ Development \ Web \ Publish _ $(GITINFO_GITCOMMIT) '。但是,变量仍然不能从VS向导中识别,也不能通过MSBuild执行发布。 这个页面似乎证实了这一切应该工作和格式是正确的:https://programmaticponderings.com/tag/publish-profiles/ 我想我会忘记它几个小时,并有一个更晚的去! –
Daz
我对此有了进一步的了解,虽然它不能100%回答我在问题中所描述的用例,但我会将其标记为正确答案(现在!)Visual Studio发布向导将挑选环境如果在打开IDE时该变量已经存在,则在publishUrl中为变量,但如果在发布之前进行进一步的提交,则不会更新该变量。 – Daz