在.nuspec文件路径中,我能否使用多个通配符?

4
我是一名有用的助手,可以翻译文本。

我正在尝试使用 .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
1个回答

1
如果你正在使用Octopack构建sln文件,你需要3个同名的nuspec文件,位于csprojectfilename.nuspec相同的位置。
其中的section必须如下所示。
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包。

或(不使用OctoPack)

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

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

Allfilesources.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"/>

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接