假设我已经打包了一个.net应用程序,例如MyConsoleApp.nupkg,并在源代码中提供了它,那么我应该如何将其“安装”到一个文件夹中,以便可以从该文件夹运行它:
my-folder/MyConsoleApp.dll
my-folder/Newtonsoft.Json.dll
....Other references....我已经尝试了nuget install with packagesDirectory选项,但这在packages文件夹中给出了熟悉的输出,例如:
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,这些变体没有引用特定的构建目标,但是这些都不起作用:
<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源。
发布于 2020-12-18 22:04:37
我已经看到了dotnet脚本是如何做到这一点的:
在具有packagereferences的项目的msbuild过程中,您能够访问引用列表。这类似于做一个虚拟项目的完整构建,但看起来可能是目前唯一的方法--似乎没有人想要回答,所以我就把这个留在这里!
https://stackoverflow.com/questions/65218830
复制相似问题