我在构建后事件中使用此命令从项目中生成了一个 nuget 包。该变量%conf%
设置为正确的配置(调试或发布)并且%1
是项目名称(例如“MyCompany.MyProject”)。
nuget pack -Prop Configuration=%conf% "%1.csproj" -exclude *.sql -IncludeReferencedProjects
这个包仅供我们自己使用,它永远不会在 nuget 上发布。它在我们的私有存储库中结束。
在项目中,有一个文件设置为generate action : content
and copy local : always
。(我的 Visual Studio 是法语的,所以我不能 100% 确定翻译)。让我们命名它importantfile.xml
。
在生成的包中,我最终得到了这个结构:
- content
- importantfile.xml
- lib
-net45 (.NetFramework,Version=v4.5)
-MyCompany.MyProject.dll
这很好,我想importantfile.xml
部署在包中,因为,这个文件很重要!
当我在另一个项目中安装包时,importantfile.xml
部署在项目的根目录下。没关系。但它没有设置为copy local : always
。
我需要importantfile.xml
在copy local : always
这个项目中安装我的包。
我怎样才能做到这一点?
备注:
我可以在安装软件包后设置copy local : always
文件,这没什么大不了的。如果以后对包的更新会让这个属性保持原样,我会接受它,但事实并非如此。更新包时,copy local
重置为never
(如此处所述)。
项目文件夹中有一个 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>$description$</description>
<copyright>Copyright 2014</copyright>
<tags>some random tags</tags>
</metadata>
</package>