我在构建后事件中使用此命令从项目生成nuget包。该变量%conf%设置为正确的配置(调试或发行版),并且%1是项目名称(例如“ MyCompany.MyProject”)。
nuget pack -Prop Configuration=%conf% "%1.csproj" -exclude *.sql -IncludeReferencedProjects
该软件包仅供我们自己使用,绝不会在nuget上发布。它结束于我们的私有存储库。
在项目中,有一个文件设置为generate action : content和copy local : always。(我的视觉工作室是法语的,所以我不确定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>