2014-02-28 24 views
4

我正在寫一段代碼,這只是一堆JavaScript和JSON文件 - 它是一個grunt插件,而不是一個網站 - 我想通過Visual Studio編輯文件和管理源代碼管理。Visual Studio的語言不可知項目類型?

我想構建一個'vanilla'msbuild項目文件 - 不是C#,不是VB等,因爲這些文件在這類文件中無效。我可以編寫一個帶有.msbuildproj擴展名的非常簡單的MSBuild文件,但不能將其加載到VS2013中,並且無法在任何地方找到示例。

任何人都知道如何將一個空的,語言無關的項目簡單地放在文件管理中?

+1

我通常爲此使用網站項目。 – SLaks

+0

它應該在Xml中,堅持MsBuild項目文件模式。你說你無法加載。你如何加載它? – Nicodemeus

+0

只需使用解決方案並將文件添加爲解決方案項目? *因爲這些文件在這類文件中無效*我懷疑這是真的,根據我的經驗,您可以將任何類型的文件添加到任何項目中。例如,將「生成操作」設置爲「無」。 – stijn

回答

1

你多半權:

  • Visual Studio項目(幾乎所有的現代類型的,那是)是的MSBuild項目。但是,Visual Studio只加載它具有擴展名的項目。您無法加載任意MSBuild項目。 (當然,你可以隨時編輯一個MSBuild文件爲XML,如果它已經作爲項目加載,你必須首先卸載它才能編輯它。)

  • 對於某些項目類型,不能添加任何類型你想要的文件。例如,WiX項目不允許您添加T4模板(.tt)文件。這是一個恥辱。但是,您可以編輯該項目以添加它們,這不會破壞任何內容。但是這真的取決於項目類型擴展的作者。儘管如此,我還沒有找到任何我無法添加到C#和Visual Basic .NET項目的文件。

由於SLaks評論,網站項目允許添加任何類型的文件,並應爲您的情況。

+0

謝謝你的意見,湯姆。我要去的是一個'。msbuildproj'文件 - 如果你做文件|添加|現有的項目,過濾器包括這個擴展與csproj,vbproj等一起。我目前已經爲一個簡化的csproj文件,但我會看看網站。 –

0

我找到了相同的msbuildproj擴展名,並且想做類似的事情。我現在不關心在VS中實際構建。我只想將所有文件包含在某些文件夾中,從而減輕解決方案文件夾的缺點。所以經過一番搜索,我發現this後。藉助VS2017並利用爲.NET Core項目引入的新的MSBuild項目格式,我能夠爲我工作以下內容。

<Project Sdk="Microsoft.NET.Sdk"> 
    <ItemGroup> 
    <Content Include="*" /> 
    <!-- Use "**" for all sub-folders --> 
    <!--<Content Include="**" />--> 
    </ItemGroup> 

    <!-- A temporary solution, import C# Visual Studio design time targets in order to be able to load the project in Visual Studio --> 
    <PropertyGroup> 
    <CSharpDesignTimeTargetsPath Condition="'$(CSharpDesignTimeTargetsPath)'==''">$(MSBuildExtensionsPath)\Microsoft\VisualStudio\Managed\Microsoft.CSharp.DesignTime.targets</CSharpDesignTimeTargetsPath> 
    </PropertyGroup> 
    <Import Project="$(CSharpDesignTimeTargetsPath)" Condition="'$(CSharpDesignTimeTargetsPath)' != '' and Exists('$(CSharpDesignTimeTargetsPath)')" /> 
</Project> 
相關問題