使用nuget的模块化asp.net mvc应用程序

时间:2014-02-03 16:06:20

标签: asp.net-mvc module nuget tfs2012 asp.net-mvc-5

我有一个Asp.Net-MVC应用程序,它由多个模块组成。每个模块都作为一个单独的项目实现。我使用以下文件夹结构,以便将我的文件复制到主应用程序的areas-folder中。

<files>
    <file src="Views\*.*" target=".\content\Areas\Home\Views\Home\" />
    <file src="Views\Shared\*.*" target=".\content\Areas\Home\Views\Shared\" />
    <file src="Controllers\*.*" target=".\content\Areas\Home\Controllers\" />
    <file src="Models\*.*" target=".\content\Areas\Home\Models\" />
    <file src="*AreaRegistration.cs" target=".\content\Areas\Home\" />
</files>

以下post-build事件确保将'module'包装到nuget-package中并放入一个本地文件夹中,我的模块的nuget包将被删除。

cd $(ProjectDir)
nuget pack -OutputDirectory $(SolutionDir)ModulePackageSource\

我的清单使用程序集版本($ version $ variable,即“1.0。*”)作为程序包的版本。 到目前为止一直很好,但我想知道是否有更好的方法来做到这一点?

当开发人员更改某些内容时(假设他修改了控制器或视图),他必须重建项目,以便触发构建后事件并将nuget-package放入我们的“ModulePackageSource”文件夹(我们在哪里)收集我们的模块包)。然后我们使用以下预构建事件来更新我们的个人存储库(“ModulePackageSource”)的所有包,以将新版本添加到我的主应用程序中。

cd $(ProjectDir)
nuget update packages.config -Source $(SolutionDir)ModulePackageSource\ -FileConflictAction Ignore -NonInteractive

我在博客中看到,应该检查所有nuget-packages(位于“packages”文件夹中) - 但是当我这样做时,我的文件夹真的很难被污染(因为它添加了模块的全部内容)每一个构建)。 问题: =&GT;这导致微小变化的大变化集 =&GT;整个东西必须存储到TFS =&GT;当另一个用户检出源(GetLatestVersion)并构建整个解决方案时,每个模块都会被新创建(新版本)。

有更好的方法吗,或者首先在主应用程序中开发并且只在主要开发完成时将其放入单独的项目中更好?

0 个答案:

没有答案