设想
我正在尝试使用 Visual Studio 2015 RC,特别是考虑切换到新的 ASP.NET 5 框架、项目结构和运行 ASP.NET 5 应用程序的新 DNX。
我的雇主有许多针对 .NET Framework 4.5.2 的现有解决方案。在我们现有的 Visual Studio 解决方案中,我们可能有以下项目:
[Solution] Sample.sln
[Folder] src
[Project] ClassLibrary.csproj
[Project] WindowsService.csproj
[Project] WebApplication.csproj
[Folder] test
[Project] ClassLibrary.UnitTests.csproj
...
在这种情况下,ClassLibrary.csproj
是一个包含共享代码的 C# 类库。它是 /WindowsService.csproj
和引用的依赖项WebApplication.csproj
。
我们并不是专门针对 .NET Core dnxcore50
、. 在这个阶段,我们很高兴以 .NET Framework dnx451
、. 但是,我们绝对是在尝试利用 ASP.NET 5 的新功能和相关的项目结构。
以下是我想到的一些选项,但都有问题。
选项1
当我们用WebApplication.csproj
新的 ASP.NET 5 DNX 项目替换上面的项目时,WebApplication-dnx
我们仍然可以ClassLibrary.csproj
从这个新的 DNX 项目和现有WindowsService.csproj
项目中引用。但是会出现一些问题:
这种方法意味着对代码的任何更改都
ClassLibrary.csproj
需要重新构建才能在运行中可见WebApplication-dnx
。这并不奇怪,但意味着我们没有获得WebApplication-dnx
.我们不能轻易针对其他框架,例如
dnxcore50
. 如上所述,这不是现阶段的具体目标。
选项 2
如果我们替换ClassLibrary.csproj
为 DNX 类库项目^ ClassLibrary-dnx
,则选项 1 中的问题不适用。这种方法似乎更符合 .NET 运行时和相关技术(如 ASP.NET)的打包方式。
但是我找不到ClassLibrary-dnx
从WindowsService.csproj
. 如果这种方法可行,我想该解决方案与项目级别选项有关Produce outputs on build
,然后引用构建期间生成.nupkg
的,甚至可能。.dll
但是,我看不到通过工具实现这一目标的干净方法。
^ DNX 类库项目Class Library (Package)
在 VS 2015 RC 中调用。此项目类型以前ASP.NET Class Library
在 CTP 中调用过。
概括
根据上面的信息,我正在寻找:
对我的方案选项和问题的一些反馈。
我没有想到的其他选项的建议。
也许表明应该使用哪种方法向前发展。