我正在尝试使用.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
以下是我的尝试:
<file src="..\..\..\Project\*\code\Views\**\*.cshtml" target="Views" />
奇怪的是,单个通配符成为递归起点,导致:
* Views
* Bar
* code
* Views
* View1.cshtml
* View2.cshtml
* Baz
* code
* Views
* View3.cshtml
* View4.cshtml
...
<file src="..\..\..\Project\**\code\Views\**\*.cshtml" target="Views" />
产生与#1相同的结果
<file src="..\..\..\Project\*\code\Views\*\*.cshtml" target="Views" />
结果如下:
* Views
* View1.cshtml
* View2.cshtml
* View3.cshtml
* View4.cshtml
* View5.cshtml
* View6.cshtml
答案 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"/>