3

我正在尝试使用.nuspec<files>元素将一系列 Razor 视图收集到 NuGet 包中。我的项目结构是非标准的,但是,由于我不会进入的原因,我无法更改它。

这是我的项目结构:

* Project
  * Bar
     * code
         * Bar.csproj <-- OctoPack initiated from here
         * Views
             * Bar
                 * View1.cshtml
                 * View2.cshtml
  * Baz
     * code
         * Views
             * Baz
                 * View3.cshtml
                 * View4.cshtml
  * Qux
     * code
         * Views
             * Qux
                 * View5.cshtml
                 * View6.cshtml

...这就是我所追求的:

期望的结果

* Views
    * Bar
        * View1.cshtml
        * View2.cshtml
    * Baz
        * View3.cshtml
        * View4.cshtml
    * Qux
        * View5.cshtml
        * View6.cshtml

这是我尝试过的:

尝试#1

<file src="..\..\..\Project\*\code\Views\**\*.cshtml" target="Views" />

奇怪的是,单个通配符成为递归的起点,导致:

* Views
    * Bar
        * code
            * Views
                * View1.cshtml
                * View2.cshtml
    * Baz
        * code
            * Views
                * View3.cshtml
                * View4.cshtml
    ...

尝试#2

<file src="..\..\..\Project\**\code\Views\**\*.cshtml" target="Views" />

产生与 #1 相同的结果

尝试#3

<file src="..\..\..\Project\*\code\Views\*\*.cshtml" target="Views" />

结果如下:

* Views
    * View1.cshtml
    * View2.cshtml
    * View3.cshtml
    * View4.cshtml
    * View5.cshtml
    * View6.cshtml
4

1 回答 1

1

如果您使用 Octopack 构建 sln 文件,您将需要 3 个 nuspec 文件,这些文件的名称与 csprojectfilename.nuspec 相同

该部分必须类似于以下内容

Bar.nuspec(与 Bar.csproj 相同的文件夹级别)

<file src="obj\Release\Package\PackageTmp\bin\Views\bar\*.cshtml"     target="Views\Bar"/>

Baz.nuspec(与 Baz.csproj 相同的文件夹级别)

<file src="obj\Release\Package\PackageTmp\bin\Views\baz\*.cshtml"     target="Views\Baz"/>

Qux.nuspec(与 Qux.csproj 相同的文件夹级别)

<file src="obj\Release\Package\PackageTmp\bin\Views\qux\*.cshtml"     target="Views\Qux"/>

将有 3 个 nuget 包。

或(无八包)

如果您想使用一个 nuget 包执行此操作,您应该使用 nuget.exe 并手动打包。

"C:\Scripts\Nuget.exe" pack %WORKSPACE%\Allfilesources.nuspec -OutputDirectory "%2" -BasePath "%3" -version %4

所有文件源.nuspec

<file src="C:\CustomPack\obj\Release\Package\PackageTmp\bin\Views\bar\*.cshtml"     target="Views\Bar"/>
<file src="C:\CustomPack\obj\Release\Package\PackageTmp\bin\Views\baz\*.cshtml"     target="Views\Baz"/>
<file src="C:\CustomPack\obj\Release\Package\PackageTmp\bin\Views\qux\*.cshtml"     target="Views\Qux"/>
于 2016-05-09T12:10:47.060 回答