如何对 Visual Studio 工件进行版本控制?
Posted
技术标签:
【中文标题】如何对 Visual Studio 工件进行版本控制?【英文标题】:How to version Visual Studio artifacts? 【发布时间】:2022-01-08 08:23:15 【问题描述】:当我构建一个 Maven 项目时,工件版本在 pom.xml
文件中。在 Gradle 中,它位于 gradle.properties
或 build.gradle
文件中。在 NodeJS 中,它位于 package.json
文件中。
在对 Visual Studio 解决方案 (*.sln
) 工件进行版本控制时是否有等效的方法,所以当我发布工件时它将使用该版本?
【问题讨论】:
【参考方案1】:Visual Studio、MsBuild 和 Nuget 支持锁定文件。但是,您需要使它们能够生成它们。几乎全世界都选择了退出系统,.NET 生态系统有一个选择加入系统。如果我没记错的话,Visual Studio 2017 添加了支持。
编辑您的项目文件并添加:
<Project>
<PropertyGroup>
<RestorePackagesWithLockFile>true</RestorePackagesWithLockFile>
</PropertyGroup>
</Project>
要在锁定模式下强制恢复,请添加:
<RestoreLockedMode>true</RestoreLockedMode>
并且可以选择在 CI 上自动执行该条件:
<Project>
<PropertyGroup>
<RestorePackagesWithLockFile>true</RestorePackagesWithLockFile>
<RestoreLockedMode
Condition="'$(RestoreLockedMode)' == ''
and ('$(TF_BUILD)' != ''
or '$(CONTINUOUS_INTEGRATION)' != '')"
>
true
</RestoreLockedMode>
</PropertyGroup>
</Project>
您也可以使用 dotnet 或 msbuild 从命令行传入这些属性:
> dotnet restore --locked-mode
> msbuild /t:restore /p:RestoreLockedMode=true
这些属性是为每个 .NET 项目文件设置的。这不是解决方案范围的属性。
另见:
https://jessehouwing.net/99-percent-of-code-isnt-yours/【讨论】:
以上是关于如何对 Visual Studio 工件进行版本控制?的主要内容,如果未能解决你的问题,请参考以下文章
使用 Visual Studio 2019 对 BizTalk 2020 人工制品进行单元测试会导致 Intellisense 问题
如何使用 GitHub Actions 对构建工件进行版本化?
Visual Studio和TFS:通过Changeset ID来回转到以前的版本