file.txt
。在构建解决方案时,所有DLL都被复制,但文本文件被留下了。在.nuspec
文件中,我最初将文件包含在<files><file src="foo\file.txt" target="lib\netstandard2.0"/></files>
下。当还原NuGet包时,file.txt
出现在packages文件夹中,但它没有被复制到构建目录中。
尝试1:我尝试使用nuspec文件中的contentFiles
属性,因为nuspec reference在那里引用了几次。我成功使用这个新属性使nuget.exe pack
命令工作(即没有语法错误),但内容(file.txt
)处理方式没有改变。
尝试2:我尝试使用一个projectId.targets
文件。这个使用了一个Target
,其中包含该文件的ItemGroup
。然后,我尝试使用一个指向目标文件夹的Copy
事件,即$(OutputPath)
。
看起来很难将一个包含在软件包中的文件复制到构建目录中,需要深入研究MSBuild事件等等。
我非常困惑,在这方面任何指点都会受到欢迎。
编辑#1:
我尝试根据下面的建议向元数据添加了此部分:
<contentFiles>
<files include="any\any\file.txt" buildAction="EmbeddedResource" />
</contentFiles>
这在小型测试中可行。 file.txt
在 Visual Studio 和构建目录中都能很好地显示出来。奇怪的是,使用完全相同的语法在我的主项目中却不起作用(我在两个项目中都使用 .NET Core 2.0)。此外,在 NuGet 包资源管理器中,当它独立存在时,它会显示在包内容中。但是当我在 <files><file src="lib\netstandard2.0\test.dll" target="lib\netstandard2.0"/></files>
下添加一些东西时,它就从该视图中消失了。
编辑 #2:
我认为还有其他的问题...这里是我们主要项目的.nuspec文件。当我按照以下工作建议添加一个内容文件时,它仍然不会出现(无论是.NET Core 2.0还是.NET Framework 4.7.1)。是.targets
文件在搞鬼吗?
./any/any/file.txt
,对吗?如果我使用上面的 .nuspec 文件,我会得到以下错误:无法找到路径 E:\source\repos\mzLib\contentFiles。
当我从<file src="contentFiles / any / any / file.txt" target="contentFiles / any / any" />
中的src属性中删除了contentFiles /时,测试用例就可以工作了。 - cezn