我正在使用Visual Studio 2012并为应用程序开发插件。 此应用程序具有不同的API(我需要引用的DLL),具体取决于其版本。 我的插件的代码适用于应用程序的2012和2013版本,但我必须使用相应版本的API。
因此,我可以在Visual Studio中使用不同的引用编译相同的项目(并输出到2个不同的文件夹),或者是创建重复项目和更改引用的唯一方法吗?
希望我已经清楚了, 感谢
答案 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>