我正在研究多个Visual Studio .Net项目,他们都共享一个我正在同时开发的Nuget包。对于测试,我想直接引用我的Nuget项目生成的.dll(无需将其打包并在每个测试项目中安装)。
我想知道是否在某个Visual Studio项目中指示项目应该在某个路径中引用特定的.dll,但是回退到正确的Nuget包。
在大多数机器中,.dll路径不会存在,因此它们最终会使用Nuget包,但在我的机器上,这意味着我可以直接使用我的.dll的开发版本。
顺便说一下,我在这个例子中使用的是Visual Studio 2013,但我也有兴趣知道这是否可以在Visual Studio 2015项目中使用。
答案 0 :(得分:0)
您可以使用msbulid条件检查某个文件是否存在: https://msdn.microsoft.com/en-us/library/7szfhaft.aspx
一些样本:
<Import Project="$(VSToolsPath)\TeamTest\Microsoft.TestTools.targets" Condition="Exists('$(VSToolsPath)\TeamTest\Microsoft.TestTools.targets')" />
或者:
<Choose>
<When Condition="('$(VisualStudioVersion)' == '10.0' or '$(VisualStudioVersion)' == '') and '$(TargetFrameworkVersion)' == 'v3.5'">
<ItemGroup>
<Reference Include="Microsoft.VisualStudio.QualityTools.UnitTestFramework, Version=10.1.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" />
</ItemGroup>
</When>
<Otherwise>
<ItemGroup>
<Reference Include="Microsoft.VisualStudio.QualityTools.UnitTestFramework" />
</ItemGroup>
</Otherwise>
</Choose>
答案 1 :(得分:0)
如果我正确解释您的问题,您应该只能添加对项目bin文件夹中生成的.dll的引用。 如果添加引用是您不熟悉的内容,我可以解释如何执行此操作。
添加参考:
- 右键单击解决方案资源管理器中的“引用”节点 - 点击右下角的“浏览...”。 - 导航到存储.dll文件的文件夹。
现在每次更改.dll并编译它时,这些更改都会自动反映在主机程序中。