【问题标题】:Include source files of package in .NET Core MSBuild在 .NET Core MSBuild 中包含包的源文件
【发布时间】:2017-02-13 14:26:29
【问题描述】:

在基于 project.json 的项目中,我能够很容易地引用 nuget 包中的(源)文件。我刚刚将以下内容添加到 project.json,我可以在我的代码中引用这些类。即使是代码完成。

"dependencies": {
  "Microsoft.Extensions.DotnetToolDispatcher.Sources": {
    "type": "build",
    "version": "1.0.0-*"
  }
}

现在我尝试迁移到基于 MSBuild 的工具(工具版本为 1.0.0-rc4-004771),但我无法在 csproj 文件中使用相同的工具。

我在 csproj 文件中添加了以下引用:

<ItemGroup>
  <PackageReference Include="Microsoft.Extensions.DotnetToolDispatcher.Sources" Version="1.0.0" PrivateAssets="All" />
</ItemGroup>

但是添加引用后,还是找不到包中的资源(源文件)。例如,在 project.json 项目中,我可以简单地调用以下方法,该方法存在于包中,Microsoft.Extensions.Internal.DotnetToolDispatcher.IsDispatcher(),但在我的 .csproj 项目中无法识别该类(或方法等)。

我想我可能必须明确添加&lt;Compile Include="x" /&gt; 语句,但我在包含中写了什么?如何引用上面的包?

【问题讨论】:

    标签: msbuild .net-core


    【解决方案1】:

    此特定软件包的 1.0.0 版本不支持 MSBuild。它使用仅适用于 project.json 的文件夹布局。 MSBuild 要求包含 C# 文件的包使用“contentFiles”功能。

    查看以下链接了解更多详情。

    https://docs.microsoft.com/en-us/nuget/schema/nuspec#including-content-files

    https://github.com/dotnet/sdk/issues/236

    【讨论】:

    • 谢谢!我读过它,但(错误地)认为这是编译时的事情。不得不更新现有的软件包,这样它们才能再次与 MSBuild 一起工作,这有点糟糕。
    猜你喜欢
    • 1970-01-01
    • 2019-07-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-20
    相关资源
    最近更新 更多