C# 是否可以根据解决方案配置引用程序集?

C# 是否可以根据解决方案配置引用程序集?,c#,visual-studio,C#,Visual Studio,我知道我可以根据项目配置引用程序集,但我可以根据解决方案配置引用吗?我在想这样的事情: <ItemGroup Condition="'$(SolutionConfiguration)' == 'Debug1'> <Reference Include="Library1"> <HintPath>C:\Path\To\Library1.dll</HintPath> </Reference> </ItemGroup>

我知道我可以根据项目配置引用程序集,但我可以根据解决方案配置引用吗?我在想这样的事情:

<ItemGroup Condition="'$(SolutionConfiguration)' == 'Debug1'>
  <Reference Include="Library1">
    <HintPath>C:\Path\To\Library1.dll</HintPath>
  </Reference>
</ItemGroup>

<ItemGroup Condition="'$(SolutionConfiguration)' == 'Debug2'>
  <Reference Include="Library2">
    <HintPath>C:\Path\To\Library2.dll</HintPath>
  </Reference>
</ItemGroup>

C:\Path\To\Library2.dll

如果不是这样,是否有其他方法可以根据解决方案配置引用一个或另一个程序集?

解决方案配置链接到项目配置。对于每个解决方案配置,我们指定要使用的项目配置。例如,当我们选择解决方案发布时,通常会选择项目发布


因此,为您想要的dll创建两个与您想要的两个解决方案配置相匹配的项目配置。选择解决方案配置时,将选择不同的项目配置,并取消引用正确的dll

解决方案配置链接到项目配置。对于每个解决方案配置,我们指定要使用的项目配置。例如,当我们选择解决方案发布时,通常会选择项目发布


因此,为您想要的dll创建两个与您想要的两个解决方案配置相匹配的项目配置。选择解决方案配置时,将选择不同的项目配置,并取消引用正确的dll

这应该行得通。尝试配置,而不是SolutionConfiguration@RicoSuter是的,但是配置指的是项目配置,而不是解决方案配置。作为一个方面,像
C:\Path\to\Library2.dll这样的绝对路径是有害的。如果您认为现在维护所有这些都很有挑战性,请等待,直到您在另一个开发设备或生成服务器上从源代码管理中签出为止。@3Dave我同意,并且在实际项目中,我会定义一个带有库路径的环境变量。该库由第三方供应商提供。程序集不在GAC中,无法通过NuGet访问。还有一些配置变量可用于获取解决方案目录、项目目录等,或者仅使用相对路径:我从来没有在GAC里放过任何东西。它邀请.NET版本的DLL地狱。苹果做对了一件事,即所有应用程序依赖项都位于应用程序的文件夹中。卸载==删除。这应该可以工作。尝试配置,而不是SolutionConfiguration@RicoSuter是的,但是配置指的是项目配置,而不是解决方案配置。作为一个方面,像
C:\Path\to\Library2.dll这样的绝对路径是有害的。如果您认为现在维护所有这些都很有挑战性,请等待,直到您在另一个开发设备或生成服务器上从源代码管理中签出为止。@3Dave我同意,并且在实际项目中,我会定义一个带有库路径的环境变量。该库由第三方供应商提供。程序集不在GAC中,无法通过NuGet访问。还有一些配置变量可用于获取解决方案目录、项目目录等,或者仅使用相对路径:我从来没有在GAC里放过任何东西。它邀请.NET版本的DLL地狱。苹果做对了一件事,即所有应用程序依赖项都位于应用程序的文件夹中。Uninstall==delete。这实际上是我现在设置它的方式,但我想找到一种方法来避免创建所有这些项目配置(用于调试和发布)对于每个解决方案配置。另一种方法是根据一些配置参数动态加载dll。实际上,我现在就是这样设置的,但我想找到一种方法来避免创建所有这些项目配置(用于调试和发布)对于每个解决方案配置。另一种方法是根据一些配置参数动态加载dll。