维护两个 C# 项目版本

Maintain two C# projects versions

我有一个连接到某个程序的应用程序。所以它基本上是一个插件。而且它附加的程序有不同的版本(2021、2022、2023)。要使用 API,我必须引用适当的 .dll 文件。这些引用是唯一改变的东西。所以源代码在我的所有插件版本中都是相同的,但我必须更改这些引用。我怎样才能有效地做到这一点?在附加了不同 dll 的项目之间复制代码并不是我猜想的最佳解决方案……我正在使用 MS Visual Studio。最好用 git 来做吗(怎么做?)或者 VS 本身有一些工具可以做到这一点?

请帮帮我, 普热梅克

Visual Studio 允许您创建 so-called 。它类似于一个库,但它不是自己编译的:它的 源文件 被认为是引用共享项目的每个项目的一部分。

您的解决方案结构应如下所示:

  • 插件2021
  • Plugin2022
  • Plugin2023
  • 共享项目

您的共享项目将包含所有代码,您的插件项目将仅包含对相应 API dll 和共享项目的引用。

所以我为我的项目创建了不同的配置 - 每个版本一个或两个,然后有条件地引用 .csproj 文件中所需的 .dll。

在 ItemGroup 中,我现在有很多这样的标签:

 <Reference Include="autodesk.inventor.interop, Version=26.0.0.0, Culture=neutral, PublicKeyToken=d84147f8b4276564, processorArchitecture=MSIL" Condition="'$(Configuration)' == 'Release' OR '$(Configuration)' == 'Debug'">
  <SpecificVersion>False</SpecificVersion>
  <EmbedInteropTypes>False</EmbedInteropTypes>
  <HintPath>C:\Windows\Microsoft.NET\assembly\GAC_MSIL\Autodesk.Inventor.Interop\v4.0_26.0.0.0__d84147f8b4276564\autodesk.inventor.interop.dll</HintPath>
</Reference>

它似乎工作得很好。使用 TargetPath 进行更多修改,我很高兴!非常感谢大家的宝贵时间。

普热梅克