使用dnx/.net核心更改输出程序集和程序包的名称

Dam*_*ian 18 .net-core dnx

我有一个项目存在于一个名为的目录中Oracle,我希望调用创建的工件MyCompany.MyApp.Oracle而不是Oracle,在更改目录名称之外更改输出程序集名称和nuget包名称的选项是什么?

  • 我目前MyCompany.MyApp.Oracle.xproj 在我的project.json文件旁边有一个
  • 我也试过<AssemblyName>MyCompany.MyApp.Oracle</AssemblyName>在xproj文件中设置但是没有用
  • 我也试过{"id":"MyCompany.MyApp.Oracle"}在project.json中设置但仍然没有运气

Max*_*xim 25

根据@Victor Hurdugaci的评论

"buildOptions": {
    "outputName": "Some.Specific.Assembly.Name"
},
Run Code Online (Sandbox Code Playgroud)

你需要把它放在project.json文件中.它将生成名称为Some.Specific.Assembly.Name.dll的输出

  • 请注意Visual Studio仍然包含一些错误.因此,自定义输出名称将破坏MVC应用程序启动并在测试资源管理器中发现测试. (2认同)

Vic*_*aci 7

稍后编辑:这个答案适用于pre-dotnet版本(dnx).现在可以更改包名称.

旧答案:更改包名称的唯一方法是更改​​文件夹名称.

  • 在CLI中,您现在可以更改程序集名称.因此,包名称仍然是文件夹名称,但您可以指定一个新的程序集名称,如下所示:https://github.com/aspnet/dotnet-watch/blob/63a9d64394717f9876e307ccdc67c23ac49a16c7/src/Microsoft.DotNet.Watcher.Tools/project上传.json#L4 (5认同)

And*_*ena 7

从.NET Core 1.1开始,使用csproj而不是package.json,您应该使用<AssemblyName>配置.

示例x.csproj:

<Project Sdk="Microsoft.NET.Sdk">

  <PropertyGroup>
    <AssemblyName>Name your assembly here</AssemblyName>
    <OutputType>Exe</OutputType>
    <TargetFramework>netcoreapp1.1</TargetFramework>
  </PropertyGroup>

</Project>
Run Code Online (Sandbox Code Playgroud)