首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >用VisualStudio2017 MVC ASP.NET Core发布“它们必须有相同数量的项目”

用VisualStudio2017 MVC ASP.NET Core发布“它们必须有相同数量的项目”
EN

Stack Overflow用户
提问于 2016-11-19 07:15:06
回答 3查看 1.7K关注 0票数 6

当我尝试发布时,我会收到以下消息:

严重程度代码描述项目文件行抑制状态 错误"DestinationFiles“指1项,"SourceFiles”指2项。它们必须有相同数量的物品。

我的项目正在我的本地主机上工作,我现在正在寻找publish...but,我得到了上面的错误。我转换了我的项目从VS 2015和出版工作良好。为了确保我以前的发布配置文件不是问题所在,我删除了我的配置文件的旧工作副本,并设置了一个新的。我知道VS 2017是几天前刚刚发布的,任何帮助都是很棒的。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2016-11-19 22:05:25

我认为Microsoft.NET.Publish.targets文件中有一个bug。

我更改了DestinationFiles行(第99行和第127行)如下,现在它工作了

代码语言:javascript
运行
复制
<Copy SourceFiles = "@(_ResolvedFileToPublishAlways)"
      DestinationFiles="@(_ResolvedFileToPublishAlways -> '$(PublishDir)%(RelativePath)')"
      OverwriteReadOnlyFiles="$(OverwriteReadOnlyFiles)"
      Retries="$(CopyRetryCount)"
      RetryDelayMilliseconds="$(CopyRetryDelayMilliseconds)"
      UseHardlinksIfPossible="$(CreateHardLinksForPublishFilesIfPossible)"
      UseSymboliclinksIfPossible="$(CreateSymbolicLinksForPublishFilesIfPossible)">
票数 3
EN

Stack Overflow用户

发布于 2016-12-14 20:15:33

这是一个已知的错误,并在VS2017 RC工具已知问题文档中提到:

无法发布 无法发布ASP.NET核心网络应用程序(.NET框架)

  • 问题:

如果您试图发布一个ASP.NET核心网络应用程序(.NET框架),您将遇到以下错误:"DestinationFiles“指1项,"SourceFiles”指2项。他们必须有相同数量的物品

  • 解决办法:

https://github.com/aspnet/Tooling/blob/master/known-issues-vs2017.md

回头看看是否提供了解决办法。

但是,在文件夹“C:\ Files\dotnet\sdk\1.0.0-preview4-004233\Sdks\Microsoft.NET.Sdk\build”“中编辑"Microsoft.NET.Publish.targets”并不适用于我。

票数 3
EN

Stack Overflow用户

发布于 2017-01-27 09:19:14

这个bug是在最新的中修复的,在我的例子中,它是最新的1.0.0Rc4-004578。

不幸的是,在新的版本中,他们决定.csproj文件甚至不需要默认的编译和资源模式,在默认情况下,msbuild任务将包括这些模式。

因此,如果它们包含在您的.csproj文件中,您将无法使用rc4进行编译。

下面是为我做这件事的步骤/改变:

  • 从rc4下载并安装dotnet [https://github.com/dotnet/cli]或更高版本
  • 在您的解决方案/项目文件夹中添加目标为新的dotnet核心的global.json,在我的例子中是:{ "sdk": { "version": "1.0.0-rc4-004578" } }
  • 打开.csproj文件并编辑它(现在可以直接在VS 2017中);将调试配置条件添加到默认模式项组中 <ItemGroup Condition=" '$(Configuration)' == 'Debug' "> <Compile Include="**\*.cs" /> <EmbeddedResource Include="**\*.resx" /> </ItemGroup>
  • 确保您正在使用正确的(新的) dotnet: dotnet --versoin
  • 发布带有配置设置版本的porject dotnet publish PATH\MyPorject.csproj -c Release -o OUT_DIR

注意,我们在.csproj文件中保留了默认编译模式的部分,但在调试配置条件下,这是必要的,如果您希望在VS 2017 RC中继续编译和运行项目,它使用的是dotnet preview4。

只需记住您在那里的活动配置应该调试。

您可以在[https://github.com/dotnet/cli/issues/4759#issuecomment-274904448]的dotnet线程下找到有关这里讨论的问题的更多细节。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40690233

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档