我使用來自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