首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >cs项目文件和nuspec文件的未来

cs项目文件和nuspec文件的未来
EN

Stack Overflow用户
提问于 2016-11-22 14:14:12
回答 1查看 407关注 0票数 2

我们已经将我们的应用程序(包括20多个项目和5个可执行文件)转移到asp net (1.1)和project.json (.xproj)。

我们已经开始运行了,但是现在我们正在将某些项目作为包转移到我们的内部nuget提要中。我们可以使用project.json创建nuget包,但我们也可以使用nuspec文件来创建包(尽管这些占位符不再是自动填充的)。

由于微软宣布放弃project.json,回到原来的xml项目结构,我想知道nuspec支持会发生什么变化?

我一直在研究这个,但是没有找到任何关于这个的信息。

是否有人知道该项目文件的未来将如何包含nuspec支持,或者nuspec文件是否仍有必要?

发现的相关资源:

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-11-24 10:39:35

我今天发现在安装preview3时安装了预览版( vs2017 ),您也可以在这里找到它:https://github.com/dotnet/core/blob/master/release-notes/preview3-download.md

这个新的sdk包含一个dotnet migrate,它将project.json和xproj文件转换回.csproj文件。

新的项目文件将如下所示:

代码语言:javascript
复制
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" />

  <PropertyGroup>
    <TargetFramework>netstandard1.6</TargetFramework>
    <AssemblyName>MyProject</AssemblyName>
    <PackageTargetFallback Condition=" '$(TargetFramework)' == 'netstandard1.6' ">$(PackageTargetFallback);dnxcore50</PackageTargetFallback>
    <GenerateAssemblyConfigurationAttribute>false</GenerateAssemblyConfigurationAttribute>
    <GenerateAssemblyCompanyAttribute>false</GenerateAssemblyCompanyAttribute>
    <GenerateAssemblyProductAttribute>false</GenerateAssemblyProductAttribute>
  </PropertyGroup>
  <ItemGroup>
    <Compile Include="**\*.cs" />
    <EmbeddedResource Include="**\*.resx" />
    <EmbeddedResource Include="compiler\resources\**\*" />
  </ItemGroup>
  <ItemGroup>
    <ProjectReference Include="..\OtherProject.csproj" />
  </ItemGroup>
  <ItemGroup>
    <PackageReference Include="Microsoft.NET.Sdk">
      <Version>1.0.0-alpha-20161104-2</Version>
      <PrivateAssets>All</PrivateAssets>
    </PackageReference>
    <PackageReference Include="NETStandard.Library">
      <Version>1.6.1</Version>
    </PackageReference>
    <PackageReference Include="ServiceStack.Common.Core">
      <Version>1.0.*</Version>
    </PackageReference>
    <PackageReference Include="ServiceStack.Text.Core">
      <Version>1.0.*</Version>
    </PackageReference>
    <PackageReference Include="System.Linq.Queryable">
      <Version>4.3.0</Version>
    </PackageReference>
  </ItemGroup>
  <PropertyGroup Condition=" '$(Configuration)' == 'Release' ">
    <DefineConstants>$(DefineConstants);RELEASE</DefineConstants>
  </PropertyGroup>

  <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
</Project>

它确实包含nuget包引用,这使得packages.config变得不必要。它可能还需要一个像以前一样的nuspec文件。

我在背后发现的东西

是基于在项目文件中添加的这些Xml标记,以及默认的dotnet添加了msbuild支持文件。dotnet将在内部构建这些标记,将其转换为.nuspec文件和AssemblyVersionInfo文件,然后使用这些文件构建这些标记。

它超级讨厌,但我想它很管用。(至少在发布NetStandard2.0之前,它的工作方式是这样的,但我认为它仍然是一样的)

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

https://stackoverflow.com/questions/40744169

复制
相关文章

相似问题

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