0

我正在尝试使用 NuGet.exe 1.2.20311.3 和以下规范创建一个 Nuget 包:

<?xml version="1.0" encoding="utf-8"?>
<package xmlns:xsd="http://www.w3.org/2001/XMLSchema"     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<metadata>
    <id>SharedWebsitesMvc</id>
    <version>1.0.16</version>
<authors>Ted</authors>
<owners>Ted</owners>
<requireLicenseAcceptance>false</requireLicenseAcceptance>
    <description>Shared Websites Mvc Library</description>
    <frameworkAssemblies>
        <frameworkAssembly assemblyName="mscorlib" targetFramework=".NETFramework4.6" />
        <frameworkAssembly assemblyName="System" targetFramework=".NETFramework4.6" />
        <frameworkAssembly assemblyName="System.Core" targetFramework=".NETFramework4.6" />
        <frameworkAssembly assemblyName="Microsoft.CSharp" targetFramework=".NETFramework4.6" />
    </frameworkAssemblies>
</metadata>
<files>
    <file src="D:\Projects\Websites\SharedWebsitesMvc.dll" target="lib\net46\SharedWebsitesMvc.dll" />
    <file src="D:\Projects\Websites\SharedWebsitesMvc.xml" target="lib\net46\SharedWebsitesMvc.xml" />
    <file src="D:\Projects\Websites\Scripts\backtalk.js" target="js\backtalk.js" />
    <file src="D:\Projects\Websites\Scripts\shared.js" target="js\shared.js" />
    <file src="D:\Projects\Websites\SharedWebsitesMvcInstall.ps1" target="tools\Install.ps1" />
</files>

Nuget 生成一个包,包资源管理器显示如下:

js
    backtalk.js
    shared.js
lib
    net46
         SharedWebsitesMvc.dll
         SharedWebsitesMvc.xml
tools
     Install.ps1

Install.ps1 如下所示:

param($installPath, $toolsPath, $package, $project)
Write-Host "hello from install.ps1"

当我将此包安装到 MVC 项目中时,不会复制脚本文件,并且包控制台中的脚本不会显示任何输出。我正在使用 Visual Studio 2016。

我的 NuGet 规范有什么问题?

4

1 回答 1

0

JavaScript 文件需要有一个以 Content 开头的目标:

<file src="D:\Projects\Websites\Scripts\backtalk.js" target="Content\js\backtalk.js" />
<file src="D:\Projects\Websites\Scripts\shared.js" target="Content\js\shared.js" />

以上不支持使用 project.json 文件的项目。对于那些您需要在 .nuspec 文件中使用ContentFiles部分的人:

<contentFiles>
    <files include="D:\Projects\Websites\Scripts\backtalk.js"   buildAction="None" />
</contentFiles>

对于使用 packages.config 文件的项目的 install.ps1 PowerShell 脚本,.nuspec 文件看起来不错。请注意,使用 project.json 文件的项目不支持 install.ps1。

于 2016-05-02T16:49:38.650 回答