这是我们解决方案的结构:
Solution.sln
WebApp.csproj
references ClassLibrary
ClassLibrary.csproj
references System.Net.Http.Formatting.dll with Copy local = false
当我使用WebApp和ClassLibrary的源代码构建解决方案时,请按预期复制本地工作,并且不会将System.Net.Http.Formatting.dll复制到WebApp / bin目录。
但是,当我们将项目分发给最终客户端时,我们只给它们引用编译类库(.dll)的WebApp源代码。在这种情况下,解决方案如下所示:
Solution.sln
WebApp.csproj
references ClassLibrary.dll which uses System.Net.Http.Formatting.dll
编译此部分编译的解决方案时,会将System.Net.Http.Formatting.dll复制到WebApp / bin文件夹,这会给我们带来一些麻烦。
我已经检查了详细的构建输出,并且复制任务复制了dll,这个dll的源位置是
C:\Program Files (x86)\Microsoft ASP.NET\ASP.NET MVC 4\Assemblies\System.Net.Http.Formatting.dll
还有一些其他提到的System.Net.Http.Formatting.dll程序集,我不太明白。
如何确保System.Net.Http.Formatting.dll没有复制到bin文件夹?
谢谢!
答案 0 :(得分:1)
看起来copylocal表示法是在项目文件中,客户没有阅读,所以它怎么知道?您可以将引用直接添加到它们具有的项目文件中,而不是通过传递依赖项来发现它们。然后你可以将它们标记为no-copy-local。我认为将它们添加为WebApp.csproj的引用应该完全在GUI中完成。从那开始,然后如果它不是很好的话,就要弄乱它。