繁体   English   中英

.NET内核2.1定制Nuget package。 安装 package 的项目中缺少 *.runtimeconfig.json 文件的问题

[英].NET core 2.1 Custom Nuget package. Problem with missing *.runtimeconfig.json file in the project where the package was installed

我有一个控制台应用程序项目(.net core 2.1),它是我的“自定义包”。 package 的 output 是 *.dll 文件。

我已经在不同的项目上安装了我自己的 package。

dotnet publish

我在发布文件夹中看到 *.dll (来自包)文件。

当我试图运行这个 dll 时。 我有这样的错误:

无法将文件 stream 用于 [D:\Daily\Daily*.deps.json]:没有此类文件或目录遇到致命错误。 在“D:\Daily\Daily”中找不到执行应用程序所需的库“hostpolicy.dll”。 无法作为独立应用程序运行。 - 应用程序作为独立应用程序运行,因为未找到“D:\Daily\Daily*.runtimeconfig.json”。 - 如果这应该是依赖于框架的应用程序,请添加“D:\Daily\Daily*.runtimeconfig.json”文件并指定适当的框架。

我花了一些时间为我的案例寻找解决方案,但我无法用我找到的可能解决方案来解决它。

当我这样做的时候

dotnet publish

在 Package 项目的输出中,我看到了所有我需要的东西。

当 package 安装在不同的项目中时会出现问题。

我试着用

<PropertyGroup>
    <CopyLocalLockFileAssemblies>true</CopyLocalLockFileAssemblies>
</PropertyGroup>

<RestoreProjectStyle>PackageReference</RestoreProjectStyle>

我的nuspec文件如下:

<?xml version="1.0" encoding="utf-8"?>
<package xmlns="http://schemas.microsoft.com/packaging/2012/06/nuspec.xsd">
  <metadata>
    <id>ProjectName</id>
    <version>1.0.0.0</version>
    <title>ProjectName</title>
    <authors></authors>
    <owners></owners>
    <requireLicenseAcceptance>false</requireLicenseAcceptance>
    <description></description>
    <copyright>Copyright ©  2021</copyright>
    <dependencies>
      <group targetFramework=".NETCoreApp2.1">
            some dependencies
      </group>
    </dependencies>
    <summary>ProjectName package</summary>
    <contentFiles>
      <files include="**" buildAction="None" copyToOutput="true" flatten="false" />
    </contentFiles>
  </metadata>
  <files>
    <file src="..\ProjectName\bin\Release\netcoreapp2.1\ProjectName.dll" target="lib\netcoreapp2.1\" /> 
    <file src="..\ProjectName\bin\Release\netcoreapp2.1\ProjectName.deps.json" target="lib\netcoreapp2.1\" />   
    <file src="..\ProjectName\bin\Release\netcoreapp2.1\ProjectName.runtimeconfig.json" target="lib\netcoreapp2.1\" />  
    <file src="..\ProjectName\bin\Release\netcoreapp2.1\ProjectName.runtimeconfig.dev.json" target="lib\netcoreapp2.1\" />  
  </files>
</package>

我有一个类似的问题。 这就是我解决它的方法。

我在生成 nuget package 的项目中创建了一个 ProjectName.targets 文件。 nupkg 快照

使用此 nuget package 在项目中包含此属性

<CopyLocalLockFileAssemblies>true</CopyLocalLockFileAssemblies>

这些链接很有帮助从 Nuget package 复制文件到 output 目录与 Z4AE297DCcsDE376843613907 命令 indotnet pack。

从 Nuget Package 自动提取本机和托管 DLL

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM