有没有办法让 Premake 使用 Visual-Studio 项目模板?

Is there a way to make Premake use Visual-Studio Project templates?

我正在尝试为 Visual-Studio C# MonoGame 项目创建 premake5.lua 文件。我希望能够使用 MonoGame 项目模板进行预制,而不是我必须手动挖掘模板为我创建的所有内容,然后将其放入预制中。 目前我有以下 premake5.lua 文件,它生成一个编译项目,但在 运行 它时有异常...


workspace "TilemapEditor"
    architecture "x86"
    startproject "TilemapEditor"

    configurations
    {
        "Debug",
        "Release",
        "Distribution"
    }

outputdir = "%{cfg.buildcfg}-%{cfg.system}-%{cfg.architecture}"

project "TilemapEditor"
    location "TilemapEditor"
    kind "WindowedApp"
    language "C#"
    links {"MonoGame.Framework", "System", "System.Windows.Forms", "System.Xml"}

    targetdir ("bin/" .. outputdir .. "/%{prj.name}")
    objdir ("bin-int/" .. outputdir .. "/%{prj.name}")

    files { "%{prj.name}/src/**.cs", "Properties/AssemblyInfo.cs" }

    defines { "WINDOWS" }
    dotnetframework ("4.5")

    filter "configurations:Debug"
        symbols "On"

    filter "configurations:Release"
        symbols "Off"

我还没有在 premake wiki 中找到任何可以执行此操作的函数。

不,不是真的。 Premake 正在从头开始编写完整的项目,而不是从现有项目中“填补空白”。最好的办法是区分从 Premake 和 MonoGame 模板生成的项目,并调整 Premake 脚本中的设置以匹配。完成后,就可以很容易地创建一个可以重复使用的函数,以将相同的设置应用于不同的项目。可能是这样的:

function monoGameSettings()
   -- put your MonoGame baseline settings here
   filter {}  -- finish with this to close any opened filter blocks
end

-- use it like...
project 'MyProject'
    monoGameSettings()