簡體   English   中英

Visual Studio 不會在項目和 NuGet 引用之間切換而不重新啟動

[英]Visual Studio is not switching beween project and NuGet references without restarting

我希望能夠在 NuGet 和項目引用之間切換。 為了實現這一點,我創建了名為Debug.csproj的自定義解決方案和項目配置。 然后我將包移動到適當的部分並將項目參考放在另一個部分中:

  <ItemGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
    <PackageReference Include="..." Version="..." />
  </ItemGroup>

  <ItemGroup Condition="'$(Configuration)|$(Platform)'=='Debug.csproj|AnyCPU'">
    <ProjectReference Include=".." /> 
  </ItemGroup>

我遇到的問題是 Visual Studio 確實在這些配置之間切換而無需重新啟動它。 我可以在下拉列表中選擇任何配置,但沒有任何反應 - Dependecies樹保持不變(它已在Configuration Manager中正確配置)。

有沒有辦法在不重新啟動 Visual Studio 的情況下觸發更改? (不確定這是否相關,但我使用的唯一自定義擴展是 ReSharper)

有沒有辦法在不重新啟動 Visual Studio 的情況下觸發更改?

您可以卸載您的項目並重新加載該項目 當您在解決方案資源管理器中更改顯示時,您可以通過重新加載項目文件來觸發更改。

由於您擁有相同的Platform ,您可以將其從條件中移動,例如:

  <ItemGroup Condition="'$(Configuration)' == 'Debug'">
    <PackageReference Include="..." Version="..." />
  </ItemGroup>

  <ItemGroup Condition="'$(Configuration)'=='Debug.csproj'">
    <ProjectReference Include=".." /> 
  </ItemGroup>

希望這可以幫助。

您在問題中描述的方法的問題是條件基於構建配置。 解決方案資源管理器中的 Dependencies 節點似乎不會重新評估這種情況是否發生變化。

但是,如果您更改屬性,它似乎會這樣做。 這是我采用的方法,只需更改ShouldUsePackageReferencesInDebug屬性的值並保存項目文件就足以導致重新評估 Dependencies 節點(我可以看到一個項目從包中消失,另一個項目出現在項目中 - 反之亦然)。

<PropertyGroup>
    <ShouldUsePackageReferencesInDebug>false</ShouldUsePackageReferencesInDebug>
</PropertyGroup>

<ItemGroup Condition=" '$(Configuration)' == 'Debug' ">
    <PackageReference Include="<Package Name>" Version="1.0.0" Condition="$(ShouldUsePackageReferencesInDebug)" />
    <ProjectReference Include="<Project Path>" Condition="!$(ShouldUsePackageReferencesInDebug)" />
</ItemGroup>

<ItemGroup Condition=" '$(Configuration)' == 'Release' ">
    <PackageReference Include="<Package Name>" Version="1.0.0" />
</ItemGroup>

請注意,我已對其進行了設置,以便我們使用Release構建配置的構建管道將始終使用 PackageReference。 這里的條件基於構建配置不是問題,因為沒有需要重新評估的解決方案資源管理器實例。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM