Visual studio 2017 不处于发布模式时对本地的包引用

Visual studio 2017 不处于发布模式时对本地的包引用,visual-studio-2017,nuget,nuget-package,Visual Studio 2017,Nuget,Nuget Package,我有一个解决方案W92.Externals,里面有3个项目: W92.Externals.Domain(NetStandard2.0) W92.Externals.FunctionApps(netstandard 2.0) W92.Externals.FunctionApps.Servicebus(netstandard 2.0) 每个项目都部署到NuGet,并通过NuGet被许多其他微服务/项目使用 现在在解决方案W92.Externals中,我决定使用内部依赖项,这意味着W92.Exte

我有一个解决方案
W92.Externals
,里面有3个项目:

  • W92.Externals.Domain
    (NetStandard2.0)
  • W92.Externals.FunctionApps
    (netstandard 2.0)
  • W92.Externals.FunctionApps.Servicebus
    (netstandard 2.0)
每个项目都部署到NuGet,并通过NuGet被许多其他微服务/项目使用

现在在解决方案
W92.Externals
中,我决定使用内部依赖项,这意味着
W92.Externals.functionPP
将依赖于
W92.Externals.Domain

W92.Externals.FunctionApp.csproj
如下所示:

<PackageReference Include="W92.Externals.Domain" Version="2019.7.16.139486" />
<PackageReference Include="Microsoft.Azure.ServiceBus" Version="3.3.0" />
<PackageReference Include="Microsoft.Azure.WebJobs.Extensions.ServiceBus" Version="3.0.3" />
<PackageReference Include="Microsoft.Extensions.DependencyModel" Version="2.1.0" />
<PackageReference Include="Microsoft.Extensions.Logging" Version="2.2.0" />
<PackageReference Include="Microsoft.NET.Sdk.Functions" Version="1.0.26" />
<PackageReference Include="Newtonsoft.Json" Version="11.0.2" />
<ItemGroup>
    <ProjectReference Include="..\..\..\Common\src\W92.Externals\W92.Externals.Domain.csproj" />
</ItemGroup>
2.部署更改时(在发布模式下),应从nuget获取包。如上所示:

<PackageReference Include="W92.Externals.Domain" Version="2019.7.16.139486" />

有可能以某种方式实现吗

在根文件夹中,我有nuget.config文件。也许我可以用它来解决这个问题

我在VS2017有一个项目。版本15.9.12
项目位于“Microsoft.NET.Sdk”中。

您应该保留正常的
项目组
,以定义对正常第三方nuget包的包引用:

  <ItemGroup>
    <PackageReference Include="Microsoft.Azure.ServiceBus" Version="3.3.0" />
    <PackageReference Include="Microsoft.Azure.WebJobs.Extensions.ServiceBus" Version="3.0.3" />
    <PackageReference Include="Microsoft.Extensions.DependencyModel" Version="2.1.0" />
    <PackageReference Include="Microsoft.Extensions.Logging" Version="2.2.0" />
    <PackageReference Include="Microsoft.NET.Sdk.Functions" Version="1.0.26" />
    <PackageReference Include="Newtonsoft.Json" Version="11.0.2" />
  </ItemGroup>
通过这种方式,我建议您每次在调试和发布模式之间切换后重新加载项目,以刷新解决方案资源管理器中的UI,避免弄乱设置

当您启动VS打开此解决方案时,它将读取项目文件的内容并为您加载相应的引用


例如,如果默认情况下在
调试模式下打开解决方案
,则它将使用项目引用而不是包引用。这正是您想要的,但是当您切换到
发布模式时,您需要
卸载项目并在解决方案资源管理器中重新加载它
,以加载发布模式的设置。

可以试试吗?很高兴它提供了一些帮助:)
  <ItemGroup Condition="'$(Configuration)' == 'Debug'">
    <ProjectReference Include="..\..\..\Common\src\W92.Externals\W92.Externals.Domain.csproj" />
  </ItemGroup>

  <ItemGroup Condition="'$(Configuration)' == 'Release'">
    <PackageReference Include="W92.Externals.Domain" Version="2019.7.16.139486" />
  </ItemGroup>