【发布时间】:2017-10-26 23:00:29
【问题描述】:
我有一个 C# 应用程序,最初是用 VS2015 编写的,但今年早些时候我们升级到了 2017 年。我几个月前在 VS2017 中打开了该项目并继续进行。关于在过去 4-5 个工作日内与 css 和 js 部署相关的应用程序发生的一些严重的怪异事件,我认为这里有一个很长的故事。可以这么说,我举手在VS2017中新建了一个c#/.net框架项目,把主要的源文件和web.config文件复制过来;重新制作我的模型;引入了必要的 nuget 包等。我毫无问题地构建了项目。
我现在正在尝试进行 Web 部署。这应该是一件简单的事情。项目的“发布”版本需要将相关文件传输到 IIS 开发服务器。在奇怪之前,我用 VS2017 做了很多很多次。它奏效了。
现在,在 VS2017 Web Deploy 中从头开始创建的 .Net Framework 项目失败并出现错误
The 'Connection String' argument cannot be null or empty.
这很奇怪,因为当我创建 Deploy 配置文件时,我告诉它不要部署数据库。但是,似乎忽略了在 Web 部署设置中取消选中“在运行时使用此连接字符串”框。取消选中这些框并保存编辑然后重新编辑设置会显示选中的框。取消选中、保存、退出 VS 并重新进入复选框。
我看到生成的Release.pubxml 文件中的连接元素
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
...
<PublishDatabaseSettings>
<Objects xmlns="">
<ObjectGroup Name="MsSQLEntities" Order="1" Enabled="False">
<Destination Path="" />
<Object Type="DbCodeFirst">
<Source Path="DBContext" DbContext="myapp.Models.MsSQLEntities, My App" Origin="Configuration" />
</Object>
</ObjectGroup>
<ObjectGroup Name="MySQLEntities" Order="2" Enabled="False">
<Destination Path="" />
<Object Type="DbCodeFirst">
<Source Path="DBContext" DbContext="myapp.Models.MySQLEntities, My App" Origin="Configuration" />
</Object>
</ObjectGroup>
</Objects>
</PublishDatabaseSettings>
</PropertyGroup>
<ItemGroup>
<MSDeployParameterValue Include="MySQLEntities-Web.config Connection String">
<UpdateDestWebConfig>False</UpdateDestWebConfig>
</MSDeployParameterValue>
<MSDeployParameterValue Include="MsSQLEntities-Web.config Connection String">
<UpdateDestWebConfig>False</UpdateDestWebConfig>
</MSDeployParameterValue>
</ItemGroup>
</Project>
我查看了该项目早期副本中的Release.pubxml 文件。它会被制作成 bt vs2015。尽管我知道我没有选中上面的数据库连接框;该文件中包含完整的连接字符串。
我现在尝试将“旧”pubxml 文件复制到新项目,但没有任何变化。
哦,刚刚注意到上面的 pubxml 文件中提到了“DbCodeFirst”。我很确定这都是 DB 首先。
帮助?
编辑
抱歉,不知何故复制了原文中的一个部分
【问题讨论】:
标签: c# .net visual-studio-2017