微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

c# – Visual Studio解决方案中的Markdown文档

我使用c#和Visual Studio 2017开始了一个新项目.我的目标是管理Visual Studio中的文档,将所有文件放在一个地方,并在TFS / Git中提供完整且易于访问的历史记录.
我有src文件夹中的代码,测试文件夹中的测试项目,文档文件夹中的Markdown文件(我使用 Markdown Editor).根文件夹中还有一个Readme.md:

enter image description here

现在有一些问题:

> Visual Studio中的结构与文件系统中的结构不同.我在Visual Studio中创建的所有md-Files都放在Solution的根目录中.我可以在Windows资源管理器中创建文件添加“现有项目”但是这样
是一种痛苦.
>我可以在Visual Studio中移动md文件,但它们不会在文件系统中移动.
>所有文件引用都保存在sln文件中,这会改变很多.我想避免这种情况.

我读到了关于创建一个空的c#项目并禁用该项目的构建,但这似乎也是一个hack.

是否有一些建议来管理Visual Studio中的文档文件

解决方法

this answer一样,如果您使用的是 new .csproj project format并且除了Visual Studio 2017 15.3之外还安装了.NET Core 2.0 SDK,则可以使用Visual Studio 2017中的链接文件功能链接整个目录.

<EmbeddedResource Include="..\..\..\docs\**\*.md" LinkBase="docs" />

这将使用项目的相对路径将docs子文件链接到名为docs的项目(LinkBase)中的文件夹.每次添加,删除或更改docs文件夹或嵌套文件夹中的文件时,Visual Studio都会识别这些更改(如果文件已经打开,它可能会提示您在Visual Studio中更新该文件).

enter image description here

请注意,除了EmbeddedResource之外,您还可以在其他MSBuild Project Items上使用此功能,例如Content,Compile或None.

项目

从技术上讲,Visual Studio解决方文件是项目.您可以通过在文本编辑器中打开.sln文件来查看:

Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "build","build","{4016BDAB-6C33-4D1E-9439-57B416EA45D5}"
    ProjectSection(SolutionItems) = preProject
        build.bat = build.bat
        build\build.ps1 = build\build.ps1
        src\CommonAssemblyInfo.cs = src\CommonAssemblyInfo.cs
        TestTargetFramework.proj = TestTargetFramework.proj
        Version.proj = Version.proj
    EndProjectSection
EndProject

不幸的是,.sln format没有提供很多选择.正如您在Hack the Project and Solution Files中所看到的,ProjectSection只列出了项目的依赖关系,并且可以选择指定“真正的”相对文件路径.但这就是它.根据this similar question,无法将目录链接到.sln文件中的另一个目录.

上述解决方案项“Project”和.csproj项目之间的唯一区别是,后者将控制文件添加到.csproj(MSBuild)文件的位置.

Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "MyProject","src\MyProject\MyProject.csproj","{3A0AA37E-2B7B-4416-B528-DA4E0E6A6706}"
EndProject

但是,正如this answer所指出的,另一个解决方法添加一个Web站点项目,它将添加一个没有.csproj文件的项目,可以“实时”跟踪磁盘上的文件,类似于新的.csproj格式的工作方式在Visual Studio 2017中.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐