提交Subversion后"无法更新项目的依赖项"

Jas*_*ord 89 deployment dependencies setup-project winforms

我在.NET中有一个安装项目.当我保存的项目和其他项目,以颠覆,安装项目不再编译.我收到错误"无法更新项目的依赖项".

Chu*_*nch 94

关闭VS2010然后重新打开它一直对我有用:)

  • 你先生,太棒了. (4认同)
  • 我搜索了这个问题的事实,来到这里看到我已经赞成这个答案告诉我这可能对我有用.它确实如此. (3认同)

mse*_*ant 49

在MSDN上有一个很长的讨论线程.似乎有很多可能的原因.讨论包括Microsoft的这个问题的一些链接.这是 VS2005 的修补程序,这是 VS2010 的解决方法.

  • "删除然后再添加项目"方法对我有用. (21认同)
  • +1到radbyx.你的简单评论可能让我节省了一个小时的挫败感:) (9认同)
  • 重启也为我修好了.谢谢radbyx! (4认同)

Jab*_*ezz 30

我有同样的问题,但所提到的决议似乎都不适合我.重建设置项目会起作用,但这很痛苦,因为我们包含30多个项目的项目输出.

我发现工作的东西与@Marc的做法非常类似.

  1. 我注意到Visual Studio将哪些依赖项报告为错误
  2. 在Notepad ++中编辑.vdproj文件
  3. 搜索给出问题的.dll.您将看到"ScatterAssemblies"部分.如果为空,则删除整个dll引用
  4. 保存存档

在所有情况下,我有多个引用相同的DLL(不知道这是怎么发生的)

正确参考的例子:

"{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_11EC89A306FFB83A269ACC2BF8D8462B"
{
"AssemblyRegister" = "3:1"
"AssemblyIsInGAC" = "11:FALSE"
"AssemblyAsmDisplayName" = "8:Some.OrOther.Lib, Version=1.601.4042.16978, Culture=neutral, processorArchitecture=MSIL"
                "ScatterAssemblies"
                {
                                "_11EC89A306FFB83A269ACC2BF8D8462B"
                                {
                                "Name" = "8:Some.OrOther.Lib.dll"
                                "Attributes" = "3:512"
                                }
                }
"SourcePath" = "8:Some.OrOther.Lib.dll"
"TargetName" = "8:"
"Tag" = "8:"
"Folder" = "8:_79891234C744498C83755DDEA682F0BF"
"Condition" = "8:"
"Transitive" = "11:FALSE"
"Vital" = "11:TRUE"
"ReadOnly" = "11:FALSE"
"Hidden" = "11:FALSE"
"System" = "11:FALSE"
"Permanent" = "11:FALSE"
"SharedLegacy" = "11:FALSE"
"PackageAs" = "3:1"
"Register" = "3:1"
"Exclude" = "11:FALSE"
"IsDependency" = "11:TRUE"
"IsolateTo" = "8:"
}
Run Code Online (Sandbox Code Playgroud)

错误引用的示例:

"{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_11EC89A306FFB83A269ACC2BF8D8462B"
{
"AssemblyRegister" = "3:1"
"AssemblyIsInGAC" = "11:FALSE"
"AssemblyAsmDisplayName" = "8:Some.OrOther.Lib, Version=1.601.4042.16978, Culture=neutral, processorArchitecture=MSIL"
                "ScatterAssemblies"
                {
                }
"SourcePath" = "8:Some.OrOther.Lib.dll"
"TargetName" = "8:"
"Tag" = "8:"
"Folder" = "8:_79891234C744498C83755DDEA682F0BF"
"Condition" = "8:"
"Transitive" = "11:FALSE"
"Vital" = "11:TRUE"
"ReadOnly" = "11:FALSE"
"Hidden" = "11:FALSE"
"System" = "11:FALSE"
"Permanent" = "11:FALSE"
"SharedLegacy" = "11:FALSE"
"PackageAs" = "3:1"
"Register" = "3:1"
"Exclude" = "11:FALSE"
"IsDependency" = "11:TRUE"
"IsolateTo" = "8:"
}
Run Code Online (Sandbox Code Playgroud)

我也得到了相同的"两个或多个对象具有相同的目标位置('[targetdir]\MyAssembly.dll')"警告@Marc得到...但安装项目编译并运行正常.

  • 我最终删除了所有`File`程序集引用.工作得很完美. (2认同)

Mar*_*arc 6

我有类似的问题,并在MSDN的这个长期和旧的讨论中找到了解决方法.
正如用户'Jeff Hunsaker'于2010年8月26日星期四下午5:51回答(直接链接不可能):

我刚刚将Visual Studio 2008部署项目升级到VS 2010时遇到过这种情况.Hans'(上面)解决方案对我有用.

  1. 在记事本中编辑.vdproj文件.
  2. 搜索"SourcePath"="8:
  3. 对于每个程序集/ dll,提供完整路径
  4. 保存存档

在我的.vdproj文件中,我有几个条目只是引用程序集:
"SourcePath"="8:MyAssembly.DLL"

即使Visual Studio [以某种方式]知道文件位置,我收到"无法更新项目的依赖项"错误,直到我提供完整路径:

"SourcePath"="8:..\..\..\build\bin\MyCompany.MyAssembly.DLL"

问候,

杰夫...

我注意到Visual Studio报告了哪些依赖项,并编写了一个脚本来修复它们以防万一.

请注意,这现在给我一个警告"两个或多个对象具有相同的目标位置('[targetdir]\MyAssembly.dll').但我可以忍受.