首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将nuget包安装到不带csproj的文件夹中

将nuget包安装到不带csproj的文件夹中
EN

Stack Overflow用户
提问于 2020-12-09 22:33:23
回答 1查看 33关注 0票数 0

假设我已经打包了一个.net应用程序,例如MyConsoleApp.nupkg,并在源代码中提供了它,那么我应该如何将其“安装”到一个文件夹中,以便可以从该文件夹运行它:

代码语言:javascript
复制
my-folder/MyConsoleApp.dll
my-folder/Newtonsoft.Json.dll
....Other references....

我已经尝试了nuget install with packagesDirectory选项,但这在packages文件夹中给出了熟悉的输出,例如:

代码语言:javascript
复制
myconsoleapp/1.0.0/lib/netcoreapp3.1/MyConsoleApp.dll
newtonsoft.json/11.0.1/lib/netstandard2.0/Newtonsoft.Json.dll
newtonsoft.json/11.0.1/lib/netstandard1.3/Newtonsoft.Json.dll
newtonsoft.json/11.0.1/lib/net20/Newtonsoft.Json.dll
....Other references....

我假设有一个msbuild目标,它将正确的内容从包目录复制到build目录--有什么简单的方法可以使用它吗?

我尝试过在.proj文件的变体中使用PackageReference来使用dotnet restore/build,这些变体没有引用特定的构建目标,但是这些都不起作用:

代码语言:javascript
复制
<Project Sdk="Microsoft.NET.Sdk">
<ItemGroup>
<PackageReference Include="MyConsoleApp" Version="*" />
</ItemGroup>
<Project>

我不想做一个引用我的控制台应用程序(或asp.net核心应用程序)的MyDummy.csproj来实现这一点,因为它看起来不是很干净,我担心让SDK和<PropertyGroup>的东西兼容正确。

我知道这可能不属于最佳实践,但我想看看在任何情况下是否可以做到。

背景

我想部署一个由c#核心库、应用程序和插件组成的网格,以便它们都使用完全相同的版本。

这些库(核心应用程序框架)由应用程序(web apis、后台服务工作者)和插件(dotnet-script,其中nuget引用了这些库)引用。插件依次由库调用。

插件必须引用与应用程序加载时相同的库程序集,但在运行时会被解析为NuGet引用,从而避免了脚本中对System.Etc.Dll的大量猜测引用以及相关的运行时失败。

通过nuget包安装应用程序导致了一种有趣的方式来获得所有人的单一真理来源- nuget源。

EN

回答 1

Stack Overflow用户

发布于 2020-12-18 22:04:37

我已经看到了dotnet脚本是如何做到这一点的:

https://github.com/filipw/dotnet-script/blob/master/src/Dotnet.Script.DependencyModel/ProjectSystem/csproj.template

在具有packagereferences的项目的msbuild过程中,您能够访问引用列表。这类似于做一个虚拟项目的完整构建,但看起来可能是目前唯一的方法--似乎没有人想要回答,所以我就把这个留在这里!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65218830

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档