根据配置文件更改引用的 NuGet 包
Change NuGet Package Referenced Based on Profile
我们有一个在本地创建的 NuGet 包。我们有一个包含非生产环境的版本和一个包含生产环境的版本。让我们使用Connection和ConnectionProd作为参考。
有没有一种方法可以设置调试或我已设置为使用 Connection 包的非 Prod 发布配置文件,但让生产配置文件使用 ConnectionProd?我知道 PackageReference 有条件,但我不确定是否有办法将其与选定的发布配置文件联系起来?
出于安全原因,我们的大多数开发人员都无法访问 ConnectionProd NuGet 源位置,我希望不必创建另一个 TFS 分支来单独处理生产 NuGet 引用。
您根据环境指定不同的包名称和版本:
<ItemGroup Condition="'$(Configuration)'=='Debug'">
<PackageReference Include="Connection" Version="1.0.0-dev" />
</ItemGroup>
<ItemGroup Condition="'$(Configuration)'=='Release'">
<PackageReference Include="ConnectionProd" Version="1.0.0" />
</ItemGroup>
更新
理论上 '$(ASPNETCORE_ENVIRONMENT)'=='Development'
或使用任何环境变量作为条件应该可以做到,但不知何故我无法让它在我的测试项目中工作。
但是,我找到了另一种方法,可以使用任何自定义变量使其成为 运行,只需在 <PropertyGroup>
中定义您的变量,然后使用它来定义条件:
<PropertyGroup>
<MyVariable Condition="'$(MyVariable)'==''">MyValue</MyVariable>
</PropertyGroup>
<ItemGroup Condition="'$(MyVariable)'=='MyValue'">
...
</ItemGroup>
我们有一个在本地创建的 NuGet 包。我们有一个包含非生产环境的版本和一个包含生产环境的版本。让我们使用Connection和ConnectionProd作为参考。
有没有一种方法可以设置调试或我已设置为使用 Connection 包的非 Prod 发布配置文件,但让生产配置文件使用 ConnectionProd?我知道 PackageReference 有条件,但我不确定是否有办法将其与选定的发布配置文件联系起来?
出于安全原因,我们的大多数开发人员都无法访问 ConnectionProd NuGet 源位置,我希望不必创建另一个 TFS 分支来单独处理生产 NuGet 引用。
您根据环境指定不同的包名称和版本:
<ItemGroup Condition="'$(Configuration)'=='Debug'">
<PackageReference Include="Connection" Version="1.0.0-dev" />
</ItemGroup>
<ItemGroup Condition="'$(Configuration)'=='Release'">
<PackageReference Include="ConnectionProd" Version="1.0.0" />
</ItemGroup>
更新
理论上 '$(ASPNETCORE_ENVIRONMENT)'=='Development'
或使用任何环境变量作为条件应该可以做到,但不知何故我无法让它在我的测试项目中工作。
但是,我找到了另一种方法,可以使用任何自定义变量使其成为 运行,只需在 <PropertyGroup>
中定义您的变量,然后使用它来定义条件:
<PropertyGroup>
<MyVariable Condition="'$(MyVariable)'==''">MyValue</MyVariable>
</PropertyGroup>
<ItemGroup Condition="'$(MyVariable)'=='MyValue'">
...
</ItemGroup>