2

我在Visual Studio中使用單擊部署部署了ASP.NET MVC 5應用程序。在單擊部署中複製帶有msdeploy的css/js文件

同時我需要將一些css/js文件複製到一個集中的文件夾,以便可以從我的解決方案的不同應用程序中使用它們。

看來msdeploy有some options來解決這個問題。但是,在哪裏/如何使用Visual Studio 2015將參數傳遞給msdeploy?

回答

1

其中一個選項是:

,我們需要一些類繼承任務。它會複製文件。

public class CopyFilesToFolder : Task 
{ 
    [Required] 
    public string FolderPathForSource { get; set; } 

    [Required] 
    public string OutputFolder { get; set; } 

    public override bool Execute() 
    { 
     //Do copy here 

     return true; 
    } 
} 

例如YouProject是您想要部署的內容。

我們需要編輯YourProject.csproj文件: 註冊的DLL與CopyFilesToFolder類,並添加目標MsDeploy

<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> 
    <UsingTask TaskName="CopyFilesToFolder" AssemblyFile="..\..\pathTodll\dllWithCopyFilesToFolderClass.dll"> 
    </UsingTask> 
    <Target Name="CopyFilesToFolderForPublish"> 
    <CopyFilesToFolder FolderPathForSource="$(ProjectDir)\\$(_PackageTempDir)\\Content\\" OutputFolder="C:\\Deploy\\Content\\"> 
    </CopyFilesToFolder> 
    </Target> 
<!-- ... --> 

</Project> 

正如你看到有我們可以傳遞參數給類我們前面創建。 而最後,在YourProject.pubxml文件中,我們告訴MsDeploy,當他一起推杆需要包的執行CopyFilesToFolderForPublish目標

<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> 
    <PropertyGroup> 
    <!-- Other properties --> 
    <OnAfterCopyAllFilesToSingleFolderForPackage>CopyFilesToFolderForPublish;</OnAfterCopyAllFilesToSingleFolderForPackage> 
    </PropertyGroup> 
</Project> 
所有文件
相關問題