我可以在.nuspec文件路径中使用多个通配符吗?

时间:2016-05-05 20:53:55

标签: nuget octopus-deploy nuspec nuget-spec

我正在尝试使用.nuspec <files> elements将一系列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 个答案:

答案 0 :(得分:0)

如果要使用Octopack构建sln文件,则需要3个名称相同并且位于csprojectfilename.nuspec

的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

<强> 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"/>