我在后期构建事件中使用此命令从项目生成nuget包.变量%conf%设置为正确的配置(调试或发布),并且%1是项目名称(例如"MyCompany.MyProject").
nuget pack -Prop Configuration=%conf% "%1.csproj" -exclude *.sql -IncludeReferencedProjects
Run Code Online (Sandbox Code Playgroud)
此软件包仅供我们自己使用,永远不会在nuget上发布.它以我们的私有存储库结束.
在项目中,有一个设置为generate action : content和的文件copy local : always.(我的视觉工作室是法语,所以我不是百分之百地确定了它的变形).我们来命名吧importantfile.xml.
在生成的包中,我最终得到了这个结构:
- content
- importantfile.xml
- lib
-net45 (.NetFramework,Version=v4.5)
-MyCompany.MyProject.dll
Run Code Online (Sandbox Code Playgroud)
哪个好,我想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> …Run Code Online (Sandbox Code Playgroud) copy-local visual-studio nuget nuget-package visual-studio-2012