我试图在Vapor/Fluent应用上运行一个swift命令,在过去没有问题。我正在运行swift run App migrate
,它通常会更新任何迁移。但它会抛出标题中的错误。
我看了一下包文件,它有:
targets: [
.target(
name: "App",
dependencies: [
.product(name: "Vapor", package: "vapor"),
.product(name: "FluentPostgresDriver", package: "fluent-postgres-driver"),
.product(name: "Fluent", package: "fluent"),
.product(name: "Leaf", package: "leaf"),
// .product(name: "SendGrid", package: "sendgrid"),
],
swiftSettings: [
// Enable better optimizations when building in Release configuration. -- Despite the use of
// the `.unsafeFlags` construct required by SwiftPM, this flag is recommended for Release
// builds. See <https://github.com/swift-server/guides#building-for-production> for details.
.unsafeFlags(["-cross-module-optimization"], .when(configuration: .release))
]
),
.target(name: "Run", dependencies: [.target(name: "App")]), // comment what follows
.testTarget(name: "AppTests", dependencies: [
.target(name: "App"),
.product(name: "XCTVapor", package: "vapor"),
])
// to here
]
字符串
而顶部的名称是不同的东西。我已经尝试重新输入命令与名称设置在包部分,这并没有什么区别。
我已经尝试了同样的事情与多个其他项目是类似的,包括那些没有被改变了几个月,和工作之前,我得到了同样的错误。试图安装命令行工具说,一切都是最新的。和重置Xcode的标准路径(它从来没有被改变)没有做任何事情.
我在这一点上有点迷失...任何答案非常感谢。
2条答案
按热度按时间6psbrbz91#
在某种程度上,似乎swift工具改变了,期望
executableTargetName
(“运行”)而不是targetName
(“应用程序”)。因此,对于您的示例(以及我的vapor项目,我是如何解决这个问题的),您现在需要运行
swift run Run migrate
,而不是运行swift run App migrate
f0brbegy2#
我在使用GitHub操作时遇到了这个问题。我想出了一个方法,通过运行
swift run
,省略可执行文件的名称。我只有一个可执行目标。如果你有多个,这可能不起作用。