如何版本 Visual Studio 工件?

How to version Visual Studio artifacts?

当我构建 Maven 项目时,工件版本在 pom.xml 文件中。在 Gradle 中,它位于 gradle.propertiesbuild.gradle 文件中。在 NodeJS 中,它位于 package.json 文件中。

在对 Visual Studio 解决方案 (*.sln) 工件进行版本控制时是否有等效的方法,因此当我发布工件时它会使用该版本?

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 项目文件设置的。这不是一个广泛的解决方案 属性.

另请参阅: