我有src文件夹中的代码,测试文件夹中的测试项目,文档文件夹中的Markdown文件(我使用 Markdown Editor).根文件夹中还有一个Readme.md:
现在有一些问题:
> Visual Studio中的结构与文件系统中的结构不同.我在Visual Studio中创建的所有md-Files都放在Solution的根目录中.我可以在Windows资源管理器中创建文件并添加“现有项目”但是这样
是一种痛苦.
>我可以在Visual Studio中移动md文件,但它们不会在文件系统中移动.
>所有文件引用都保存在sln文件中,这会改变很多.我想避免这种情况.
解决方法
.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中更新该文件).
请注意,除了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] 举报,一经查实,本站将立刻删除。