【问题标题】:What is the best way to change the solution name programmatically in asp.net core?在 asp.net 核心中以编程方式更改解决方案名称的最佳方法是什么?
【发布时间】:2017-07-18 19:03:42
【问题描述】:

我正在寻找一种为 ASP.NET Core 项目提供更改解决方案/项目名称功能的方法。我的第一个想法是在开发人员编写项目名称的安装程序功能中以编程方式进行。是否可以在 .NET Framework 中或通过 Powershell 实现?

谢谢!

【问题讨论】:

    标签: c# asp.net-mvc powershell visual-studio-2015 setup-project


    【解决方案1】:

    您可以使用以下功能来帮助您进行更改:

    以下是参考链接:

    1) Link 1

    2)Link 2

    function Rename-Project
    {
    # designed to run from the src folder
    param(
        [string]$projectName=$(throw "projectName required."),
        [string]$newProjectName=$(throw "newProjectName required.")
    )
    
    if(!(Test-Path $projectName)){
        Write-Error "No project folder '$projectName' found"
        return
    }
    
    if(!(Test-Path $projectName\$projectName.csproj)){
        Write-Error "No project '$projectName\$projectName.dll' found"
        return
    }
    
    if((Test-Path $newProjectName)){
        Write-Error "Project '$newProjectName' already exists"
        return
    }
    
    # project
    hg rename $projectName\$projectName.csproj $projectName\$newProjectName.csproj
    
    # folder
    hg rename $projectName $newProjectName
    
    # assembly title
    $assemblyInfoPath = "$newProjectName\Properties\AssemblyInfo.cs"
    (gc $assemblyInfoPath) -replace """$projectName""","""$newProjectName""" | sc $assemblyInfoPath
    
    # root namespace
    $projectFile = "$newProjectName\$newProjectName.csproj"
    (gc $projectFile) -replace "<RootNamespace>$projectName</RootNamespace>","<RootNamespace>$newProjectName</RootNamespace>" | sc $projectFile
    
    # assembly name
    (gc $projectFile) -replace "<AssemblyName>$projectName</AssemblyName>","<AssemblyName>$newProjectName</AssemblyName>" | sc $projectFile
    
    # other project references
    gci -Recurse -Include *.csproj |% { (gc $_) -replace "..\\$projectName\\$projectName.csproj", "..\$newProjectName\$newProjectName.csproj" | sc $_ }
    gci -Recurse -Include *.csproj |% { (gc $_) -replace "<Name>$projectName</Name>", "<Name>$newProjectName</Name>" | sc $_ }
    
    # solution 
    gci -Recurse -Include *.sln |% { (gc $_) -replace "\""$projectName\""", """$newProjectName""" | sc $_ }
    gci -Recurse -Include *.sln |% { (gc $_) -replace "\""$projectName\\$projectName.csproj\""", """$newProjectName\$newProjectName.csproj""" | sc $_ }
    }
    

    【讨论】:

    • Ranadip Dutta,感谢您花时间和考虑此事。我正在与我的团队讨论这个解决方案。听起来不错。
    猜你喜欢
    • 2019-10-10
    • 1970-01-01
    • 2017-03-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-14
    • 1970-01-01
    • 2023-03-13
    相关资源
    最近更新 更多