NET核心不再以那种方式工作(将javascript/css内容复制到您的项目中)。您需要调整您的工作流。 . NET核心项目只能在SDK风格的项目中工作,而SDK风格的项目只能使用NuGet的PackageReference,而不是packages.config。docs on migrating from packages.config to PackageReference列出了一个包兼容性问题,因为它不支持content文件夹,这就是packages.config中这些资源在包安装时复制到项目中的方式。 我找不到一个列出ASP.NET核心应用程序建议的文档,但我的理解是,您可以使用LibMan,或者使用NPM,这基本上与. NET之外的Web开发行业的其他人一直在做的事情是一致的。如果您使用新的项目模板创建新的ASP.NET核心Angular或ASP.NET核心React应用程序,您将看到他们创建了一个ClientApp文件夹,其中使用了npm和所有官方的react/angular CLI工具。
3条答案
按热度按时间7gcisfzg1#
NET核心不再以那种方式工作(将javascript/css内容复制到您的项目中)。您需要调整您的工作流。
. NET核心项目只能在SDK风格的项目中工作,而SDK风格的项目只能使用NuGet的
PackageReference
,而不是packages.config
。docs on migrating frompackages.config
toPackageReference
列出了一个包兼容性问题,因为它不支持content
文件夹,这就是packages.config
中这些资源在包安装时复制到项目中的方式。我找不到一个列出ASP.NET核心应用程序建议的文档,但我的理解是,您可以使用LibMan,或者使用NPM,这基本上与. NET之外的Web开发行业的其他人一直在做的事情是一致的。如果您使用新的项目模板创建新的ASP.NET核心Angular或ASP.NET核心React应用程序,您将看到他们创建了一个
ClientApp
文件夹,其中使用了npm和所有官方的react/angular CLI工具。axkjgtzd2#
可能存在一些不同步,请从解决方案中移除包文件夹,然后再次还原包。这样可以修复此问题。还要检查输出窗口,该窗口将显示错误列表。
o2g1uqev3#
它显示在Packages中,但不像以前在ASP.NET中那样在scripts文件夹中安装任何内容。
首先,我同意zivkan。这是PackageReference Nuget Management format的一个特性。
VS有两种管理Nuget包格式:软件包.config和软件包引用。
由于新的sdk格式项目(
Net Core
和Net Standard
)只使用PackageReference来管理nuget包,因此与packages.config package management format反映的效果会有很大的不同。当您将nuget套件中的Content档案与PackageReference搭配使用时,将会遗失Scripts文件夹中的档案。
正如这份文件所说,它有这样的兼容性问题。
实际上,您可以输入
C:\Users\xxxx\.nuget\packages\knockoutjs\3.5.1
并找到一个名为Content的文件夹,当您安装此nuget包时,Nuget会将该文件夹的内容复制到您的项目中。但是
Packages.config
可以识别Content文件夹,而且据我所知,PackageReference中使用了ContentFiles文件夹来将内容添加到您的项目中,所以在您的情况下,nuget包中应该同时包含ContentFiles文件夹,请参见此正式文件。但是
knockoutjs
nuget包没有contentfiles文件夹,这就是为什么net framework的packages.config
项目有内容文件,而新的sdk项目没有。而且此行为更改仅在您创建nuget包时生效,因此您不能进行任何更改,您只能联系包的作者进行此修改,并让他尽快添加此功能以应用于新的SDK格式项目。
建议
所以现在,你可以试试这些:
1)您可以通过添加现有项手动将
C:\Users\xxxx\.nuget\packages\knockoutjs\xxxx\Content
中的内容文件添加到项目中。**2)**回滚以使用带有
packages.config
的Net Framework项目。**3)**通过this link与作者联系。