我使用以下步骤创建了一个nuget包。
我的问题是 当我从任何其他项目安装此软件包时,它会询问以下问题。 但根据我的要求,我不想将此文件移动到目标项目。假设用户给 y 它会覆盖目标项目文件,因为它面临很多参考问题。
**File Conflict
File 'Web.config' already exists in project 'CRM'. Do you want to overwrite it?
[Y] Yes [A] Yes to All [N] No [L] No to All [?] Help (default is "N"):
File Conflict
File 'Global.asax' already exists in project 'CRM'. Do you want to overwrite it?
[Y] Yes [A] Yes to All [N] No [L] No to All [?] Help (default is "N"):**
但在我的软件包中,我不想将这两个文件从包中移到目标项目中。
是否有办法避免将Global.asax和Web.config转换为从包到目标项目。
在我的.nuspec文件中,我添加了以下行
<files>
<file src="Web.config" target = "" exclude="Web.config"/>
<file src="*.asax" target = "" exclude="*.asax"/>
<file src="Content\*.css" target="Content\" />
<file src="Scripts\*.js" target="Content\Scripts\" />
</files>
但它包含内容文件夹中的 web.config 文件和 Global.aspx 文件我的结果包看起来像贝娄
myproject.1.0.0.0
>> Content
....css
>>Script
..Js file
web.config
Global.asax
答案 0 :(得分:1)
我使用以下命令来解决这个问题来打包包
nuget pack CrmHtmlController.csproj -IncludeReferencedProjects -Exclude **\*.config;**\*.asax
因此它会从包中排除所有.congig和.asax文件。
答案 1 :(得分:0)
看看你的.nuspec文件。它只是一个XML文件,因此您可以使用任何文本编辑器打开它。了解它如何定义要包含在<package><files>
的文件?删除那些您不想要的文件。如果您想使用GUI执行此操作,那么一个方便的工具是NuGet Package Manager。
答案 2 :(得分:0)
Nuget在您的包中包含web.config,因为web.config的构建操作是“Content”。这是默认情况下对于asp.net网站的经典发布所必需的。
如果你不想要这个,可能是因为你的程序集只是另一个网站的一个组件,你可以将构建操作更改为“None”,nuget将不再使用它。