Visual Studio 2015 - Web项目中缺少共享项目参考选项卡

Rya*_*ann 23 c# asp.net-mvc-5 shared-project visual-studio-2015 .net-4.6

我从MSDN订阅升级到Visual Studio 2015,因为我很高兴阅读有关共享项目的内容...当我们想要做的只是重用代码时,不再需要在我们的依赖项中管理21382个nuget包.

所以我用一些代码构建了一个测试共享项目.然后我在.Net 4.6上添加一个新的空Web应用程序到项目中.现在我希望转到引用并在引用窗口中看到"共享项目"选项卡,但我没有看到.

现在我可以在同一个解决方案中添加一个类库,然后我会看到该选项卡并添加共享引用.但是我无法将共享项目添加到我的Web应用程序中.

我非常希望我可以使用这个概念与多个MVC项目共享视图.

我在这里遗漏了什么,或者是与Web Projects不兼容的共享项目?

我看到的唯一方法是为我构建的每个Web应用程序提供两个项目.代码为1,内容为1.

例如

XYZ.SomeWebSite.Code (Class Library Project Type) -> references Shared Project
XYZ.SomeWebSite (Web Project Type)
Run Code Online (Sandbox Code Playgroud)

然而,走这条路线,我将无法将视图,文本文件,CSS文件,javascript文件等推送到Web应用程序中.

Rya*_*ann 44

[临时答案]

我能够通过手动编辑我的Web应用程序的csproj文件来解决此问题.

以下是步骤:

  1. 卸载Web应用程序项目
  2. 通过右键单击项目并单击编辑来编辑*.csproj文件...
  3. 现在查找ProjectTypeGuids元素.

    {349C5851-65DF-11DA-9384-00065B846F21}; {fae04ec0-301f-11D3-bf4b-00c04f79efbc}

第一个guid是ASP.Net MVC 5项目的指导,第二个guid是C#.

你需要做的就是暂时删除第一个guid和分号,只留下c#guid(第二个).

重新加载项目并添加您的共享项目.一旦添加完毕,编辑项目文件并将第一个guid和分号放回原位.

重新加载项目.

共享项目引用仍将存在,它将构建并链接到您的Web应用程序.

或者,您可以手动添加共享项目引用,格式如下

<Import Project="..\XYZ.UPlugin\XYZ.Plugin.projitems" Label="Shared" />
Run Code Online (Sandbox Code Playgroud)

  • 值得注意的是,尽管它说`<Import Project = ... />`,但扩展名不是项目文件扩展名`.shproj`,而是文件`.projitems`.后一个文件与项目文件位于同一目录中. (2认同)