来自外部文件夹的参考代码文件

时间:2020-01-17 10:30:15

标签: c# visual-studio project

我尝试将c#代码集合引用到Visual Studio中的控制台项目。

  1. 我想将引用的代码保留在控制台项目文件夹

  2. 我希望代码在外部位置更改时自动更新

  3. 所引用的代码文件夹结构应保持不变。 (约100个文件)

是否有一种无需每次更新即可引用/链接代码的方法?仅当代码位于解决方案文件夹中时,“包含在项目中”才有效。

3 个答案:

答案 0 :(得分:8)

您可以在项目之外的代码文件中添加“链接”。这不会复制文件。

右键单击您的项目->添加->现有项...,然后浏览到文件。然后单击“添加”按钮上的向下箭头,然后选择“添加为链接”:

Add As Link

链接的文件在解决方案资源管理器中显示为蓝色箭头:

Linked file in Solution Explorer


如果要引用代码的整个文件夹结构,则需要编辑.csproj。像这样:

<ItemGroup>
    <Compile Include="..\SomeDir\**\*.cs" Link="%(RecursiveDir)%(Filename)%(Extension)"/>
</ItemGroup>

..\SomeDir调整为代码的路径。 **\*.cs当然是一种递归包含所有.cs文件的模式。 %(RecursiveDir)%(Filename)%(Extension)是MSBuild占位符。

答案 1 :(得分:0)

我将git仓库组织为扁平结构:

  • 核心
  • shared1
  • 网站1
  • 网站2

网站1和2都引用core和shared1。

当我将项目引用从网站1和2添加到core和shared1时,它们保持不变,因为从网站的角度来看,它们都处于相同的相对位置。

此外,我组织解决方案以镜像外部存储库配置,例如

  • 核心(解决方案文件夹)
    • corelibrary.csproj
  • shared1(解决方案文件夹)
    • sharedlibrary.csproj
  • website1services.csproj
  • website1.csproj

答案 2 :(得分:0)

我找到了一个好的解决方案,但我好奇是否有更好的解决方案。我在Windows上并且使用了Simbolic链接

cmd /c mklink /d /j _LinkedCode ..\..\..\_Code

然后我可以在Visual Studio中使用“包含在项目中”