【问题标题】:Visual Studio 2017 adding unwanted dll's after publishingVisual Studio 2017 在发布后添加不需要的 dll
【发布时间】:2018-01-14 14:59:00
【问题描述】:

我有一个使用 .NET Framework 4.5.1 构建的 Web 应用程序

当我从 VS2017 发布它时,VS2017 添加了不需要的 dll,未在参考文献中列出,它们是:

System.Web.Mvc.dll System.Web.Razor.dll System.Web.Webpages.Deployment.dll System.Web.Webpages.Razor.dll

当我尝试从 VS2013 发布时,它给出了运行时错误(剃刀丢失),我的项目没有任何 cshtml 文件,当然它没有使用任何剃刀视图。

为什么 VS2013 需要 razor,有什么方法可以阻止 VS2017 在发布时添加 razor 和其他不需要的 dll?

谢谢!!

**编辑:** 通过研究,我发现在我的 csproj 文件中添加 <PreserveCompilationContext>false</PreserveCompilationContext> 会阻止 VS2017 添加剃须刀,但现在发布后我收到运行时错误 Could not load file or assembly 'System.Web.WebPages.Razor, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' or one of its dependencies. The system cannot find the file specified.

【问题讨论】:

    标签: c# razor visual-studio-2013 visual-studio-2017


    【解决方案1】:

    您是否尝试过检查 Visual Studio 中“调试”菜单下的“选项”,其中一项设置允许您通过选择要部署的项目来控制它(在包/发布下):仅运行此应用程序所需的文件

    也有可能您引用的其中一个程序集需要另一个程序集。

    snapshot of the configuration window

    【讨论】:

    • 解决方案资源管理器中是否有 packages.config 文件,或者检查项目下的管理 NuGet 包
    • 是的,解决方案资源管理器中有一个 packages.config 文件,但我没有 MVC 包或 Razor 包。我知道可能是System.Web.Mvc.dll 要求剃须刀。 VS2017 还添加了 System.Web.Mvc.dll。所以也许我的一个程序集引用了System.Web.Mvc.dll,我一直在搞清楚是哪一个..
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-24
    • 2017-07-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多