gpt4 book ai didi

NuGet 3.3+ : contentFiles not added to project

转载 作者:行者123 更新时间:2023-12-04 14:56:42 24 4
gpt4 key购买 nike

阅读完所有我能找到的关于新 contentFiles 的信息后NuGet 3.3+ 的元素,我仍然无法让它在我的包中工作。我有一个同时针对 net46 的软件包和 uap10.0 ,以及为项目类型和平台选择正确的 DLL 会按预期工作。但我还想在包安装时向项目添加两个文件,一个用于所有项目和平台的 CSV 文件,以及一个用于 C# 或 VB.Net 的代码文件(带有 buildAction="Compile" )。这是我最新的 .nuspec 文件的删节版:

<?xml version="1.0" encoding="utf-8" ?>
<package xmlns="http://schemas.microsoft.com/packaging/2010/07/nuspec.xsd">
<metadata minClientVersion="3.3.0">
...
<contentFiles>
<files include="any\any\ErrorCodes.csv" buildAction="None" copyToOutput="false" />
<files include="cs\any\Errors.cs.pp" buildAction="Compile" />
<files include="vb\any\Errors.vb" buildAction="Compile" />
</contentFiles>
</metadata>
<files>
<file src="contentFiles\any\any\ErrorCodes.csv" target="contentFiles\any\any\" />
<file src="contentFiles\cs\any\Errors.cs.pp" target="contentFiles\cs\any\" />
<file src="contentFiles\vb\any\Errors.vb" target="contentFiles\vb\any\" />
...
</files>
</package>

包创建时没有错误,它确实包含具有指定目录结构的 contentFiles 文件夹中的三个文件。

但是当我安装包时 - 我尝试使用通用应用程序(C# 和 VB)和一个 .NET 4.6 控制台应用程序我修改为使用 project.json文件 - 添加了对 DLL 的引用,但内容文件既不会添加到项目结构中,也不会复制到项目目录中。

我很感谢您的任何意见!

最佳答案

好的,我发现 contentFiles 确实在工作,但不是我预期的那样。对于找不到他/她的内容文件的每个人的简短描述:

  • NuGet 3.3+ contentFiles 未添加到项目结构中。您不会在 Visual Studio 中看到它们。
  • 相反,这些文件被提取到项目 obj 文件夹中的一个文件夹中,并被引用(如果文件是代码)。您甚至会看到 IntelliSense 中可用的 contentFiles 代码文件中的类或方法。就我而言,Errors class 是可访问的,尽管它在项目中的任何地方都不可见。
  • 提取文件的路径具有以下架构:\obj\ \NuGet\ \ \ \

  • 我不确定我是否喜欢这种新机制。来自一些我在 Visual Studio 中看不到的不可见源的代码(通过 NuGet 提供的库在引用中可见,它通过 contentFiles 提供的任何代码都看不到)有时可能会带来问题。实际上,当我在 Visual Studio 中遇到歧义错误时,我发现 contentFiles 机制正在起作用,因为 NuGet 包中的“不可见”Errors.cs 与我手动添加到项目中的“可见”Errors.cs 发生冲突。

    关于NuGet 3.3+ : contentFiles not added to project,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35985232/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com