我已经创建了npm包,其中有js和css文件,就像bootstrap一样。我想为.Net mvc Web应用程序提供相同的包,所以我创建了.nuspec
文件,指定files
从构建输出和创建Nuget包。Nuget和NPM包都工作得很好。
现在我想发布相同的包为点净核心项目。当我在dot net core web应用程序中安装相同的Nuget包时,它安装成功,但没有将静态文件复制到项目文件夹中。
如何为dot net核心应用程序创建/修复静态文件的nugget包。我不想创建.net核心项目来运送静态文件。这将是伟大的,如果我可以添加一些配置文件,如.nuspec
为dot net核心应用以及。
我已经搜索,但无法得到任何帮助方面,所以任何建议或参考将apppriciated。myproject.nuspec
<?xml version="1.0"?>
<package >
<metadata>
<id>MyPackage</id>
<version>1.0.1</version>
<title>MyProject</title>
<authors>Me</authors>
<owners>Me</owners>
<projectUrl>some url...</projectUrl>
<requireLicenseAcceptance>false</requireLicenseAcceptance>
<description>This is similar to bootstrap</description>
<copyright>Copyright 2020</copyright>
<tags></tags>
<dependencies>
<dependency id="jQuery" version="[3.0.0, 4.0.0)" />
</dependencies>
</metadata>
<files>
<file src="dist\css\**\*.*" target="content\Content\css" />
<file src="dist\fonts\**\*.*" target="content\Content\fonts" />
<file src="dist\js\mypackage.js" target="content\Scripts" />
<file src="dist\images\**\*.*" target="content\Content\Images" />
</files>
</package>
更新:我尝试了下面由@thatguy给出的解决方案,它确实复制了适当的文件夹中的文件。我可以在Visual Studio中看到这些。但是,新创建的文件和文件夹上有箭头符号,而其他文件没有。我尝试在页面代码中包含CSS,但它没有找到新创建的文件。
这个箭头意味着什么,为什么它找不到文件?
2条答案
按热度按时间ercv8c1e1#
从静态文件为dot net核心项目创建Nuget包
你应该使用<package_id>.props文件。
1)在您的MyPackage中创建一个名为
build
的文件夹,然后在其中添加一个名为MyPackage.props
的文件。**2)**然后添加这些内容:
3)更改为使用此nusepc文件:
4)重新打包项目MyPackage,然后先在主项目中卸载旧的nuget包MyPackage。
然后先清理nuget缓存,或者删除
C:\Users\xxx(current user)\.nuget\packages
下的所有缓存。之后安装新版本MyPackage,然后先build你的项目,你可以看到主项目下的文件被复制了。
另外还有a similar issue about your request,还有这个。
==================================
更新1
如果您希望这些文件只复制到Net Core项目上,则应放弃使用
nupkg
中的content节点。当您安装包时,它将自动将文件复制到NETFramework主项目中。相反,您可以将这些文件放在nupkg的另一个名为resource的文件夹下。
你可以跟随我的脚步:
**1)**将
MyPackage.props
文件修改为:**2)**将
xxx.nuspec
文件更改为:**3)**然后重新打包你的项目并安装新的,在此之前,你应该先清理nuget缓存。
kuhbmx9i2#
在我们的组织中,我们希望在不同的dotnet项目中共享静态文件(css文件,图标,字体,js文件)。我们根据钱先生的回答创建了一个NuGet包。
第一步:nuspec文件
首先,创建一个名为
ProjectName.nuspec
的文件,包含以下内容这里,我们要分发的文件是
dist\css\
中的css文件和dist\assets\
中的一些其他文件。第二步: prop 档案
然后,创建一个名为
ProjectName.props
的文件,并将其放在名为build
的文件夹中。它应包括:此脚本将所有文件复制到
wwwroot
中的文件夹ProjectName
。第三步:. gitignore文件
我们还想复制一个. gitignore文件,这样复制到使用这个NuGet包的项目的文件就不会签入git。在构建项目时,文件总是会被复制到项目中,所以我们希望git忽略这些文件。
创建一个名为
template.gitignore
的文件,并将其放入build
文件夹中,包含以下内容:第四步:Pack NuGet包
您需要NuGet客户端工具(nuget.exe):https://learn.microsoft.com/en-us/nuget/install-nuget-client-tools
运行
nuget pack ProjectName.nuspec
,你就有了NuGet包。