问题:我的Visual Studio项目中有.sql文件,我想从我的NuGet包中排除。这些.sql文件嵌套到各种目录中,我无法从我的nuget包中成功排除所有.sql文件。
1:我在目标项目上运行以下命令创建了一个.nuspec文件:
nuget spec
2:我编辑了生成的nuspec文件,看起来像这样:
<?xml version="1.0"?>
<package >
<metadata>
<id>$id$</id>
<version>$version$</version>
<title>$title$</title>
<authors>$author$</authors>
<owners>$author$</owners>
<requireLicenseAcceptance>false</requireLicenseAcceptance>
<description>Security Core Impl</description>
<releaseNotes>Security Core Impl</releaseNotes>
<copyright>Copyright 2013</copyright>
<tags>Security Core</tags>
</metadata>
<files>
<file src="**\*.dll" target="lib\net40\" exclude="**\*.sql;" />
</files>
</package>
3:我运行以下命令来构建我的.nupkg:
nuget pack -Prop Configuration=Release
但是,每当我将此软件包安装到另一个项目中时,都会包含.sql文件。我已经尝试了上面排除的几个不同变体,并尝试了-Exclude开关。似乎没什么用。
所有.sql文件都标记为:
我还尝试通过Visual Studio选项清除我的NuGet缓存。
注意: NuGet包托管在私人服务器上。
答案 0 :(得分:12)
我刚刚遇到完全相同的问题,但是使用.txt文件。同事指出的解决方案是将构建操作从“内容”更改为“无”。
答案 1 :(得分:1)
我假设您的* .sql文件位于包的content
文件夹下?
<file src="**\*.dll" target="lib\net40\" exclude="**\*.sql;" />
告诉NuGet在lib \ net40下添加所有.DLL文件。 SQL文件被忽略,因为你的include还没有包含它们。
您可以尝试将<file target="content\" exclude="**\*.sql;" />
添加到nuspec吗?