2013-03-12 73 views
8

问题:我的Visual Studio项目中有.sql文件,我想从NuGet包中排除这些文件。这些.sql文件嵌套到各种目录中,并且我无法成功地从我的nuget包中排除所有.sql文件。排除NuGet中的所有文件


1:

nuget spec 

2:我已经编辑生成的nuspec文件,以便我已经通过我的目标项目运行以下命令创建一个.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

您是否尝试过在没有nuspec的情况下执行此操作?我的意思是删除生成的nuspec并执行'nuget pack myproj.csproj -Exclude ** \ *。sql -Prop Configuration = Release' – 2013-03-12 09:50:07

回答

12

我刚才有完全相同的问题,但与.txt文件。正如同事指出的解决方案是将“内容”更改为“无”,将构建操作更改为“无”。

+0

(facepalm)我仍然很好奇为什么OP(和I)不能排除工作,但感谢这一点。 – FLGMwt 2015-04-22 22:41:39

1

我假设你的* .sql文件位于软件包的content文件夹下?

<file src="**\*.dll" target="lib\net40\" exclude="**\*.sql;" />告诉NuGet添加lib \ net40下的所有.DLL文件。 SQL文件被忽略,因为你的包含没有包含它们。

你可以尝试添加<file target="content\" exclude="**\*.sql;" />到nuspec吗?

+0

添加会导致一个错误:NotSpecified :(必需的属性'src'is missing.:String) – barrypicker 2016-07-11 18:41:02

相关问题