标签: dotnet-cli

如何确定dnu/dotnet发布的输出文件夹

当我发布我的项目时

dotnet publish

它输出到一个文件夹

bin/Debug/dnxcore50/osx.10.11-x64/publish

(或者可能是Release等价物)

是否可以为project.json文件中指定的postpublish脚本确定此文件夹位置?

coreclr dnx dotnet-cli

5
推荐指数
1
解决办法
1200
查看次数

"如果从deploy文件夹运行,则库''hostpolicy.dll'必需",但emitEntryPoint为true

我使用默认的ASP.NET核心Web应用程序(.NET Framework)模板创建了一个Web API项目,然后使用VS发布到本地文件夹.

现在,如果我dotnet application.exe在控制台中调用,则会收到以下错误:

遇到致命错误.找不到执行应用程序所需的库'hostpolicy.dll'

我在github上找到了这个答案和这个问题,实际问题是缺少emitEntryPoint属性.一切都很好,除了我的project.json已经有了"emitEntryPoint": true

还有什么可以导致这个错误?

.net-core project.json asp.net-core dotnet-cli

5
推荐指数
1
解决办法
1万
查看次数

从头开始手动创建Visual Studio 2017(ASP.NET Core)和Aurelia(ES6)?

是否有教程向您展示如何在Visual Studio 2017中手动安装和构建Aurelia ?

为什么这样

  1. 理想情况下,我想尽可能多地使用bundleconfig.json,并使用gulp来完成我在bundleconfig.json中无法执行的操作。
  2. 我将尽可能地学习构建/捆绑/打包过程的各个方面,而不是为我设置工具。(如果我知道所有设置的步骤,则使事情更容易排除故障。)
  3. 我将不会依赖于最新的CLI和软件包。(我看过的几个都是基于VS 2017 RC)。

我已经尝试了几个CLI和“骨架”项目,但是它们都有问题。某些尚未更新为使用最新的csproj。

Aurelia CLI: Project / Folder结构与我所见过的构建SPA的任何标准方法都不相符。使用Aurelia自己的“骨架项目”时,也不会反映出您得到的结果。

dotnew新的spa模板:尽管最有前途的仅是打字稿而不是ES6。(也许有一种方法可以轻松切换它?)

Aurelia的Skeleton项目它添加了我不需要的依赖项。开箱即用也不起作用。

aurelia aurelia-cli asp.net-core dotnet-cli visual-studio-2017

5
推荐指数
1
解决办法
2769
查看次数

dotnet pack - 如何指定包的名称?

我试图在powershell中将库打包为NuGet包,如下所示:

function Create-NuGetPackages($projects) {

    if (!(Test-Path $NuGetPackageDirectory)) {
        New-Item $NuGetPackageDirectory -ItemType Directory
    }

    foreach ($project in $projects) {
        pushd $project.DirectoryName

        & dotnet.exe pack --configuration $Configuration --output $NuGetPackageDirectory --no-build

        popd
    }

    return $NuGetPackageDirectory
}
Run Code Online (Sandbox Code Playgroud)

该项目使用的是project.json一个.xproj文件(.csproj在.NET 4.5.1中还有一个用于处理项目的文件).上面的命令功能,但我最终得到一个NuGet包名称MyProject.Core,我需要它MyProject来匹配旧包.

该项目是一个端口,最明智的做法是在Java包之后命名该文件夹MyProject.Core,但是,我似乎无法弄清楚如何使它生成具有不同名称的NuGet包.

我尝试在CLI上使用此命令:

dotnet pack "src\MyProject.Core\MyProject.csproj" --output NuGetPackages\ --configuration "Release"
Run Code Online (Sandbox Code Playgroud)

但它给出了错误:

Unable to find a project.json in src\MyProject.Core\MyProject.csproj\project.json
Run Code Online (Sandbox Code Playgroud)

根据这个页面:

项目

打包的项目.它是csproj文件或目录的路径.如果省略,则默认为当前目录.

那么为什么如果我指定csproj的路径它会查找project.json文件?

通过指定以下内容,我能够解决此问题的程序集名称:

"buildOptions": { "outputName": "MyProject" },
Run Code Online (Sandbox Code Playgroud)

但是pack命令完全忽略了这一点.似乎也没有在该packOptions部分中指定NuGet包名称的选项.

我看了一下 …

.net nuget .net-core dotnet-cli

5
推荐指数
2
解决办法
3842
查看次数

.NET Core - MSB3277:发现不同版本之间存在冲突

我很难摆脱构建警告:

warning MSB3277: Found conflicts between different versions of the same dependent assembly that could not be resolved
Run Code Online (Sandbox Code Playgroud)

特别是在 .NET 核心项目中。

在一个完整的 .NET 框架项目中,我会添加一些绑定重定向,所以我搜索了这个问题并找到了这个答案,建议将以下内容添加到 .csproj 文件中:

<PropertyGroup>
  <AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
  <GenerateBindingRedirectsOutputType>true</GenerateBindingRedirectsOutputType>
</PropertyGroup>
Run Code Online (Sandbox Code Playgroud)

我已经这样做了但无济于事 - 我仍然收到构建警告。我还能做什么?

c# msbuild .net-core dotnet-cli

5
推荐指数
1
解决办法
8126
查看次数

清除 nuget 缓存后拒绝访问路径“InterfaceStubGenerator.BuildTasks.dll”

我刚刚使用以下方法清除了所有 nuget 缓存:

dotnet nuget locals all --clear
Run Code Online (Sandbox Code Playgroud)

但是现在当我尝试恢复/构建时出现以下错误

C:\dev\noddy\src\noddy.Api>dotnet build
C:\Program Files\dotnet\sdk\2.0.0\NuGet.targets(102,5): error : Access to the path 'InterfaceStubGenerator.BuildTasks.dll' is denied. [C:\dev\noddy\src\noddy.Api\noddy.Api.csproj]
Run Code Online (Sandbox Code Playgroud)

有人知道怎么修这个东西吗?

nuget dotnet-cli

5
推荐指数
1
解决办法
264
查看次数

dotnet核心并行或同时构建

这个解决方案中,我有2个应用程序:AppA,AppB共享类库Shared.我已尝试与PowerShell节点脚本并行地自动构建/运行这些(我将对其他解决方案开放).我正在使用两者--no-dependencies--no-restore旗帜,但间歇地我得到:

'CSC : error CS2012: Cannot open \'C:\\Users\\User\\source\\repos\\ParallelBuild\\Shared\\obj\\Debug\\netcoreapp2.0\\Shared.dll\' for writing -- \'The process cannot access the file \'C:\\Users\\User\\source\\repos\\ParallelBuild\\Shared\\obj\\Debug\\netcoreapp2.0\\Shared.dll\' because it is being used by another process.\' [C:\\Users\\User\\source\\repos\\ParallelBuild\\Shared\\Shared.csproj]\r\n'
Run Code Online (Sandbox Code Playgroud)

PowerShell:./ build.ps1 在此输入图像描述

node:运行项目build-scriptnode ./build-script/app.js 在此输入图像描述

为什么Shared项目建设即使有--no-dependencies旗帜?如何并行或同时构建?

powershell node.js .net-core dotnet-cli

5
推荐指数
1
解决办法
1679
查看次数

将 msbuild 参数传递给 dotnet run 命令

我们可以将 msbuild 参数传递给 dotnet build:

dotnet build MyApp.csproj /p:SolutionDir=C:\MyApp
Run Code Online (Sandbox Code Playgroud)

我们如何做同样的事情dotnet run

这不起作用:

dotnet run MyApp.csproj /p:SolutionDir=C:\MyApp
Run Code Online (Sandbox Code Playgroud)

我们想到的用例是dotnet watchrun命令一起使用并将 msbuild 参数传递给run命令的隐式build步骤。

msbuild .net-core dotnet-cli

5
推荐指数
1
解决办法
660
查看次数

使用 dotnet run 在 VS Code 中启动 .NET Core 项目

我们有一个在 Visual Studio 中使用的 .net core 2.0 项目。我想切换到使用 VS Code。我更新了 launchsettings.json 以包含项目启动配置文件(而不是 IIS),并进行了必要的更改以便能够使用 dotnet cli 运行它。

但是,当我尝试在 VS Code 中启动它时,我看不到正在使用 dotnet run 的位置,因为我想使用该命令来运行该项目,因为我们需要将配置传递给该命令才能使其工作. 命令行如下所示:

dotnet run -c Dev --launch-profile Project
Run Code Online (Sandbox Code Playgroud)

我不知道如何设置 vs 代码以使用上述命令启动。

visual-studio-code dotnet-cli

5
推荐指数
0
解决办法
633
查看次数

有一个sln文件,可以列出该sln下所有项目的所有文件吗?

是否存在执行以下操作的方法或扩展:

有了一个*.sln文件,我可以列出所有项目中的所有文件或该sln下的所有解决方案文件夹吗?

所以,如果我这样做,dotnet sln list那么我从该解决方案文件中获取项目列表,但我需要的是获取所有文件.

我真正需要的是将所有这些文件复制到不同的文件夹中.

.net msbuild build .net-core dotnet-cli

5
推荐指数
1
解决办法
540
查看次数