【问题标题】:dotnet watch $(SolutionDir) is *Undefined*dotnet watch $(SolutionDir) 是*未定义*
【发布时间】:2017-12-02 21:08:22
【问题描述】:

我正在尝试使用 dotnet watch,但是我的项目引用了 nuget 包,该包使用 $(SolutionDir) 在预构建事件中复制一些文件。这有点道理,因为 dotnet watch 在项目级别上运行,所以 $(SolutionDir) 不存在。有没有办法为整个解决方案运行 dotnet watch?

【问题讨论】:

标签: c# .net-core watch


【解决方案1】:

我创建了一个批处理脚本watch.bat

call SET ASPNETCORE_ENVIRONMENT=Development
call SET SolutionDir=%~dp0\\..\\..\\
call dotnet watch run

package.json中添加了一个脚本:

 "scripts": { "dotnetwatch": "watch.bat" }

现在我可以从 CLI 像这样运行它:

npm run dotnetwatch

或在 Visual Studio 中使用以下 launchsettings.json 个人资料:

"dotnet watch": {
      "executablePath": "watch",
      "environmentVariables": {
        "ASPNETCORE_ENVIRONMENT": "Development"
      }
    }

这不是一个理想的解决方案,但至少对我来说已经足够了。

【讨论】:

    【解决方案2】:

    从 dotnet-watch 2.0.0-preview2 开始,无法对解决方案文件运行 dotnet watch。但是,您可以为将观察多个项目的观察者构建一个自定义“项目”。有关如何执行此操作的完整示例,请参阅 https://github.com/aspnet/DotNetTools/tree/rel/2.0.0-preview2/samples/dotnet-watch/WatchMultipleProjects

    【讨论】:

    • 它并没有真正回答我的问题。在我的项目中,我必须定义 $(SolutionDir) 属性。使用 msbuild 我可以做 msbuild /p:SolutionDir=whatever 但在 dotnet cli 中它似乎不起作用。
    猜你喜欢
    • 1970-01-01
    • 2022-12-01
    • 2019-01-20
    • 2019-05-31
    • 1970-01-01
    • 2021-07-06
    • 1970-01-01
    • 2021-11-07
    • 2020-05-08
    相关资源
    最近更新 更多