C# 如何使我的VS2010安装项目在打开解决方案时没有错误?

C# 如何使我的VS2010安装项目在打开解决方案时没有错误?,c#,visual-studio-2010,setup-project,C#,Visual Studio 2010,Setup Project,我有几个项目的解决方案。其中一些(2)项目是安装项目。无论何时打开解决方案,都会出现如下错误: 错误16找不到源文件“Z:…\Remotion.Data.Linq.dll” 对于程序集“Remotion.Data.Linq.dll”,位于 “[TARGETDIR]”Z:…\CirrusNodeServiceSetup.vdproj CirrusNodeServiceSetup 这些错误可以通过构建或“触摸”(用鼠标)安装项目中的依赖项文件夹来消除 有没有办法阻止这种奇怪的行为 是的,显然有办法。

我有几个项目的解决方案。其中一些(2)项目是安装项目。无论何时打开解决方案,都会出现如下错误:

错误16找不到源文件“Z:…\Remotion.Data.Linq.dll” 对于程序集“Remotion.Data.Linq.dll”,位于 “[TARGETDIR]”Z:…\CirrusNodeServiceSetup.vdproj CirrusNodeServiceSetup

这些错误可以通过构建或“触摸”(用鼠标)安装项目中的依赖项文件夹来消除


有没有办法阻止这种奇怪的行为

是的,显然有办法。不要从磁盘文件夹或网络位置引用库

正确的方法是在解决方案文件所在的同一位置创建一个“Dependencies”文件夹(可以随意命名)。将每个外部资源复制到该文件夹中,并从那里引用它

然后记得将新文件夹和所有您将放在其中的内容添加到您的版本控制中(SVN、HG等),这样当源代码被提取到另一台机器上时,所有必需的依赖项都将在那里


编辑:需要明确的是,这适用于不属于net框架的库,这意味着它们不在GAC中。您应该始终引用GAC中的CLR库。

删除安装项目源文件夹上的只读属性为我解决了此问题。

在谷歌搜索时遇到此问题,并希望添加我的答案,因为该问题会导致相同的错误消息:

在调试版本和发布版本之间切换时,每个版本类型的版本配置都不同。调试会生成,发布不会,反之亦然。通过解决方案>属性更改生成配置以匹配发布/调试解决了问题。

我只是在上面发表了我的评论,因为这对我很有效,应该是一个答案:

重建解决方案并没有清除错误,但只需在安装项目下展开DetectedDependencies文件夹即可。关闭文件系统(设置)选项卡(在查看DetectedDependenciesFolder时打开),然后重新保存解决方案会为我清除该选项卡


奇怪的是,我没有任何更新或类似的事情。但我最近刚刚安装了Office2010,并明确选择不获取自动更新。我不确定这是否有什么关系,但很高兴它很快就能修复。

但我不知道。我让安装项目自己“发现”依赖项。“你让它自己发现依赖项”是什么意思?这没有道理。请澄清。当您将项目的输出添加到安装项目时,VS将检查项目并根据项目中的引用确定依赖项。希望这更有意义……好吧,但这仍然与我告诉你的有关。如果项目引用了解决方案文件夹之外的内容,则安装项目在检查时将读取该引用并使用它。我仍然建议您将所有依赖项移动到与解决方案处于同一级别的文件夹中,然后尝试查看错误是否仍然发生。我发现了问题。如果项目已关闭且安装程序包的“文件”视图已打开,则在项目的下一次打开时会出现此问题。我把它归结为VS2010用户界面中的一个细微缺陷。然而,总的来说,要记住上面的讨论是有益的。因此,我将此标记为答案。:)感谢您的帮助…今天早上,当我发现我的系统在Windows自动更新后重新启动,并且我的开放式解决方案已恢复时,我遇到了这个问题。重建解决方案并没有清除错误,只是简单地扩展了
设置
项目下的
detecteddependencies
文件夹。关闭
文件系统(设置)
选项卡,该选项卡在查看
已检测的依赖项
文件夹时打开,然后重新保存解决方案会为我清除该文件夹。如果您像我一样使用TFS,则手动删除只读属性没有任何影响。TFS将在您下次重新打开解决方案时修复这些标志。@user1034912,很抱歉,这对您的情况不起作用,但至少对一些人起作用。通常情况下,我只会在回答质量不好或未能解决问题的主题或类似问题时投反对票。不是因为它没有提供一个通用的解决方案,也就是说,对一些人有效,但不是对所有人有效。只是好奇,你还在使用VisualStudio2010吗?这没什么错,但很奇怪。