我尝试将c#代码集合引用到Visual Studio中的控制台项目。
我想将引用的代码保留在控制台项目文件夹外。
我希望代码在外部位置更改时自动更新。
所引用的代码文件夹结构应保持不变。 (约100个文件)
是否有一种无需每次更新即可引用/链接代码的方法?仅当代码位于解决方案文件夹中时,“包含在项目中”才有效。
答案 0 :(得分:8)
您可以在项目之外的代码文件中添加“链接”。这不会复制文件。
右键单击您的项目->添加->现有项...,然后浏览到文件。然后单击“添加”按钮上的向下箭头,然后选择“添加为链接”:
链接的文件在解决方案资源管理器中显示为蓝色箭头:
如果要引用代码的整个文件夹结构,则需要编辑.csproj
。像这样:
<ItemGroup>
<Compile Include="..\SomeDir\**\*.cs" Link="%(RecursiveDir)%(Filename)%(Extension)"/>
</ItemGroup>
将..\SomeDir
调整为代码的路径。 **\*.cs
当然是一种递归包含所有.cs
文件的模式。 %(RecursiveDir)
,%(Filename)
和%(Extension)
是MSBuild占位符。
答案 1 :(得分:0)
我将git仓库组织为扁平结构:
网站1和2都引用core和shared1。
当我将项目引用从网站1和2添加到core和shared1时,它们保持不变,因为从网站的角度来看,它们都处于相同的相对位置。
此外,我组织解决方案以镜像外部存储库配置,例如
答案 2 :(得分:0)
我找到了一个好的解决方案,但我好奇是否有更好的解决方案。我在Windows上并且使用了Simbolic链接
cmd /c mklink /d /j _LinkedCode ..\..\..\_Code
然后我可以在Visual Studio中使用“包含在项目中”