我在项目之间共享 dll 并在之后构建解决方案时遇到问题。简而言之,我将给出两个项目示例。“我的WebProject”和“我的服务”。
我使用 Vault 作为源代码控制,它具有将相同的 .dll 共享到存储库中的其他文件夹的功能。因此,“MyService”已被签入,并作为与它“共享”的所有其他项目的真实来源。
这个特定的 Web 项目的解决方案还包含服务项目,所以如果它是唯一使用“MyService”的项目,我可以从 Vault 中删除 bin/Release 文件夹,但其他解决方案可能取决于“MyService”项目。
由于“MyService”在 Vault 中确实有 Release 文件夹,因此当我尝试在发布模式下构建 MyWebProject/MyService 的解决方案时出现以下错误:
Error 1 Unable to copy file "obj\Release\MyService.dll" to
"bin\Release\MyService.dll". Access to the path
'bin\Release\MyService.dll' is denied.
如果我从工作文件夹中的“MyService/bin/Release”中删除“MyService.dll”,检查发布文件夹的内容并重新构建,那么错误就会消失,我可以检查解决方案的更改。
解决该错误的另一种方法是将文件夹设置为非只读(这实际上可能导致其他 Vault 问题),但是这和每次在发布模式下构建之前删除 .dll 似乎都是一件烦人的工作周围,而不是理想的解决方案..
我应该以不同的方式在 Vault 中共享,还是有其他方法可以永久解决该问题,而不必每次都记住解决方法?