在Visual Studio中使用不同的引用编译相同的项目

时间:2013-07-15 17:30:33

标签: reference project

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

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

希望我已经清楚了, 感谢

1 个答案:

答案 0 :(得分: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>