【问题标题】:Possibility to avoid adding nuget package reference in favor of assembly reference incl. dependencies?避免添加 nuget 包引用以支持程序集引用的可能性,包括。依赖?
【发布时间】:2020-05-20 03:54:11
【问题描述】:

有没有办法避免 nuget 包引用以简化开发人员机器上的开发?

我们目前正准备将我们“shared”解决方案中的一些项目移动到新 csproj 文件结构(使用<Project Sdk="Microsoft.NET.Sdk">)并使用<TargetFramework>netstandard2.0</TargetFramework> .

通过这样做,我们必须包含<PackageReference Include="System.Text.Encodings.Web" Version="4.7.0" /> 并更改我们共享解决方案的项目“S”中的一些代码。

在另一个解决方案后端中,我们有多个项目。其中一些通过使用对S.dll 的程序集引用来引用项目S 的程序集,如下所示:

<Reference Include="ournamespace.S">
   <HintPath>..\..\artifacts\Shared\ournamespace.S\ournamespace.S.dll</HintPath>
</Reference>

当我们构建一切正常时。但是,当从 backend 解决方案运行我们的 Web 应用程序 W 时,我们会遇到以下异常:

System.IO.FileNotFoundException: Could not load file or assembly 'System.Text.Encodings.Web, Version=4.0.5.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51' or one of its dependencies. The system cannot find the file specified.

之前在使用 .netstandard2.0(我们使用 .net framework 4.7.2 ) 并且在我们将包引用切换到 System.Text.Encodings.Web(我们使用的是&lt;PackageReference Include="AntiXSS" Version="4.3.0" /&gt;)之前,我们没有收到任何错误。

我能想到的唯一方法是我们需要从 S.dll 的程序集引用切换到使用 nuget - 以获取 S 依赖项。

但是,为我们的共享解决方案项目使用 nuget 包并在后端项目中进行开发将成为一场噩梦,因为我们需要创建一个新的 nuget 包(并发布它) S 的每次更改,并且需要一直增加 backend 项目中包引用中的版本号。这也将变得非常不切实际,因为我们的开发人员也在使用各种 git 功能分支(考虑版本控制冲突;必须发布未完成的包,并且可能使用版本后缀“alpha_”+{branchName} 来区分该版本来自的分支) .

如何在 localhost 上开发?有没有办法避免 nuget(但要正确解决它的依赖关系!)?

我已经阅读了有关本地开发的程序集引用,同时通过在 csproj 文件中使用条件来使用 nuget 包引用进行 CI 构建(但这也不适用于 VS2017;这也不能解决我们的问题上面写在localhost上的依赖问题)

还有哪些其他可能性?有没有最好的方法来处理这个问题?

提前致谢!

附:我不想通过在那里使用包引用将 S 的依赖项包含到每个引用 S 的项目中。当 S 可能出于任何原因获得新的依赖项时,这不是一个解决方案并且变得更加麻烦。

【问题讨论】:

    标签: c# .net dependencies nuget .net-assembly


    【解决方案1】:
    <CopyLocalLockFileAssemblies>true</CopyLocalLockFileAssemblies>
    

    解决了我的问题(详见How to get .NET Core projects to copy NuGet references to build output?)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-09-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-03-26
      相关资源
      最近更新 更多