使用 Visual Studio 2015 CTP 6 将 MVC 6 站点发布到 IIS
Publishing MVC 6 site with Visual Studio 2015 CTP 6 to IIS
我正在尝试将我正在使用 MVC6(测试版 3)和 Visual Studio 2015 (CTP 6) 开发的网站发布到 IIS。我已将发布设置为针对 KRE 的 x64 版本。发布一切顺利,没有报告任何错误,但我根本无法将网站设置为 运行。
第一个错误是无法找到 project.json
,但我通过将 value
键添加到 web.config
中的 kre-app-base
来解决这个问题wwwroot
文件夹,所以内容是:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<appSettings>
<add key="kpm-package-path" value="..\approot\packages" />
<add key="bootstrapper-version" value="1.0.0-beta3" />
<add key="runtime-path" value="..\approot\packages" />
<add key="kre-version" value="1.0.0-beta3" />
<add key="kre-clr" value="clr" />
<add key="kre-app-base" value="..\approot\packages\ElectricFreedom.WebUI.0.0\root" />
</appSettings>
</configuration>
然后我得到另一个错误:
在错误的页脚中,它声明它正在使用 Microsoft.AspNet.Loader.IIS
版本 "beta2"!当项目全部设置为使用 "beta3" 时,为什么要这样做?
我已经检查了我的项目的 project.json
,并且所有依赖项都列为 "beta3" 版本,但是发布仍然复制了很多 "beta2" 除了"beta3" 个版本。例如,在目录中查找 Microsoft.AspNet.Loader.IIS
会显示两个子目录,一个用于 "beta2",另一个用于 "beta3"。如果我删除 "beta2" 目录,那么我会完全得到另一个错误:
如您所见,此错误表明它正在使用 Microsoft.AspNet.Loader.IIS
的 "beta3" 版本,但它现在却在抱怨依赖注入。
所有这些在 Visual Studio 2015 CTP5 with MVC 6 (beta 2) 中运行良好。我唯一需要做的就是将 value
键添加到 kre-app-base
中,因为某些原因发布未能做到这一点。在 IIS Express 中调试该站点时,该站点也能正常工作,并且在执行此操作时我得到了上面报告的 none 个错误。
是否有可能导致这些错误发生的任何配置文件或设置?我是否漏掉了一些明显的东西?
谢谢,
似乎有一些在发布过程中创建的临时文件没有在版本之间删除。它们位于 %temp%\AspNetPublish\[ProjectName]
,删除该文件夹消除了我看到的错误,因为它清除了所有不应该发布并且肯定与新版本冲突的旧 DLL 文件。
我可以通过在 CTP6 中打开 CTP5 项目来重现它。我清楚地看到了某些程序集的问题。
我做了以下事情。
在 Project.json 中将依赖项中的 beta2 替换为 beta3。
一旦您执行第 1 步,它会给您带来与迁移相关的问题,其背后的原因是命名空间和 AccountController 中某些方法的 return 类型发生了一些变化。如果您在发布后删除迁移目录和 AccountController,它将成功呈现 home/index.
我正在尝试将我正在使用 MVC6(测试版 3)和 Visual Studio 2015 (CTP 6) 开发的网站发布到 IIS。我已将发布设置为针对 KRE 的 x64 版本。发布一切顺利,没有报告任何错误,但我根本无法将网站设置为 运行。
第一个错误是无法找到 project.json
,但我通过将 value
键添加到 web.config
中的 kre-app-base
来解决这个问题wwwroot
文件夹,所以内容是:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<appSettings>
<add key="kpm-package-path" value="..\approot\packages" />
<add key="bootstrapper-version" value="1.0.0-beta3" />
<add key="runtime-path" value="..\approot\packages" />
<add key="kre-version" value="1.0.0-beta3" />
<add key="kre-clr" value="clr" />
<add key="kre-app-base" value="..\approot\packages\ElectricFreedom.WebUI.0.0\root" />
</appSettings>
</configuration>
然后我得到另一个错误:
在错误的页脚中,它声明它正在使用 Microsoft.AspNet.Loader.IIS
版本 "beta2"!当项目全部设置为使用 "beta3" 时,为什么要这样做?
我已经检查了我的项目的 project.json
,并且所有依赖项都列为 "beta3" 版本,但是发布仍然复制了很多 "beta2" 除了"beta3" 个版本。例如,在目录中查找 Microsoft.AspNet.Loader.IIS
会显示两个子目录,一个用于 "beta2",另一个用于 "beta3"。如果我删除 "beta2" 目录,那么我会完全得到另一个错误:
如您所见,此错误表明它正在使用 Microsoft.AspNet.Loader.IIS
的 "beta3" 版本,但它现在却在抱怨依赖注入。
所有这些在 Visual Studio 2015 CTP5 with MVC 6 (beta 2) 中运行良好。我唯一需要做的就是将 value
键添加到 kre-app-base
中,因为某些原因发布未能做到这一点。在 IIS Express 中调试该站点时,该站点也能正常工作,并且在执行此操作时我得到了上面报告的 none 个错误。
是否有可能导致这些错误发生的任何配置文件或设置?我是否漏掉了一些明显的东西?
谢谢,
似乎有一些在发布过程中创建的临时文件没有在版本之间删除。它们位于 %temp%\AspNetPublish\[ProjectName]
,删除该文件夹消除了我看到的错误,因为它清除了所有不应该发布并且肯定与新版本冲突的旧 DLL 文件。
我可以通过在 CTP6 中打开 CTP5 项目来重现它。我清楚地看到了某些程序集的问题。
我做了以下事情。
在 Project.json 中将依赖项中的 beta2 替换为 beta3。
一旦您执行第 1 步,它会给您带来与迁移相关的问题,其背后的原因是命名空间和 AccountController 中某些方法的 return 类型发生了一些变化。如果您在发布后删除迁移目录和 AccountController,它将成功呈现 home/index.