【发布时间】:2020-03-14 04:20:11
【问题描述】:
我需要创建一个 .NET Standard 2.1 NuGet 包,其中包含一个 JavaScript 文件,该文件将添加到我的消费应用程序中,路径如下:
/wwwroot/js/myFileFromNugetPackage.js
(消费应用程序恰好是 Blazor 服务器应用程序)
我关注了一个使用 *.targets 文件的example,但它对我不起作用。
我得到的最接近的方法是按如下方式设置我的 NuGet 项目:
- 创建一个名为“wwwroot”的顶级文件夹
- 添加文件“wwwroot/js/myFileFromNugetPackage.js”
- 在该 JS 文件的属性中,设置“Build Action = Content”和“Copy to Output Directory”=“Copy Always”
我将它发布到我的私人 NuGet 库。
然后我将该包添加到我的 Blazor (.Net Core 3.1) 应用程序中。
当我查看 Visual Studio 的解决方案资源管理器时,我所看到的看起来很有希望:
/wwwroot/js/myFileFromNugetPackage.js
不过……
如果我在同一目录中手动创建一个新文件,那么我现在有:
/wwwroot/js/manuallyAddedFile.js /wwwroot/js/myFileFromNugetPackage.js
当我转到两个文件的属性时,我看到了不同的路径:
C:{一些路径}\MyApplication\wwwroot\js\manuallyAddedFile.js
和
C:\Users\{me}\.nuget\packages\{myNuGetPackage}\{version}\contentFiles\any\netstandard2.1\wwwroot\js\myFileFromNugetPackage.js
不出所料,当我尝试使用 Blazor 的 JS Interop 使用这些 JS 文件中的任何一个时,我可以使用我手动输入的那个,但它无法从我的 NuGet 包中找到那个。 F12 开发者工具仅显示客户端上手动创建的工具。
所以,我的问题是:如何设置我的 NuGet 项目以编写一个 JS 文件,以便它最终位于正确的目录中?
【问题讨论】:
标签: visual-studio nuget nuget-package target .net-standard