0

我正在使用 Visual Studio 2012 并为应用程序开发插件。此应用程序根据其版本具有不同的 API(我需要引用的 DLL)。我的插件代码适用于应用程序的 2012 和 2013 版本,但我必须使用相应版本的 API。

因此,我可以在 Visual Studio 中使用不同的引用编译相同的项目(并输出到 2 个不同的文件夹),还是创建重复项目和更改引用的唯一方法?

希望我已经清楚了,谢谢

4

1 回答 1

0

是的你可以。您可以在项目定义(或用于 msbuild)中使用条件编译符号,然后再次在 .csproj(或类似)文件中手动编辑它并添加相应的信息。

您还可以根据符号的 API 更改进行区分。

这是从生产代码修改的,因此可能存在语法错误,它应该类似于:

</ItemGroup>
<Choose>
  <When Condition="$(DefineConstants.Contains('__NEW_DLL_HANDLING_1__')) And !$(DefineConstants.Contains('__NEW_DLL_HANDLING_2__'))">
    <ItemGroup>
      <Reference Include="mydll, Version=2.0.0.0, Culture=neutral, processorArchitecture=MSIL">
        <SpecificVersion>False</SpecificVersion>
        <HintPath>..\Additional\mydll1\mydll.dll</HintPath>
      </Reference>
    </ItemGroup>
  </When>
  <When Condition="$(DefineConstants.Contains('__NEW_DLL_HANDLING_1__'))">
    <ItemGroup>
      <Reference Include="mydll, Version=2.0.0.0, Culture=neutral, processorArchitecture=MSIL">
        <SpecificVersion>False</SpecificVersion>
        <HintPath>..\\Additional\mydll2\mydll.dll</HintPath>
      </Reference>
    </ItemGroup>
  </When>
  <Otherwise>
于 2014-02-20T09:38:19.677 回答