为什么项目无法找到正好位于其下方的文件?

时间:2013-08-22 23:27:54

标签: vb.net visual-studio-2010 tfs

我正在尝试构建一个包含三个VB项目的解决方案;我正在研究的一个,以及另外两个有相互依赖关系的人(虽然有人说“不可用”)。

在尝试编译时,我得到关于辅助项目,“无法找到文件'DSDPAGE_T.xsl'的源文件'J:\ DSDPAGE_T.xsl',位于'[TARGETDIR]',文件可能不存在或锁定。“

J〜我搜索了解决方案,看看“J:”是否在任何地方都是硬编码的,而且不是,所以......?!?

“缺失”文件就在项目中!为什么看着J?如果在某处硬编码,为什么不点击错误信息将我带到现场呢?当我这样做时,会出现一个带有两个窗格的“文件系统”选项卡。在左边:

File System on Target Machine
    Application Folder
    System Folder
    User's Desktop
    User's Programs Menu

...在右侧窗格中,列出了该项目中的文件(与我在解决方案资源管理器中看到的相同),其中许多是错误信息的主题,无法找到它们??! ?

这是一个“VB事物”(我之前从未使用过VB)或者......?!?

也许我可以创建一个J驱动器并将编译器所戴的那些文件放在那里,因为它会编译 - 这不是我需要工作的项目,我只需要让解决方案编译,所以我可以更新其他项目。

更新

查看项目中可见的其中一个文件,但项目显示急性近视,其“SourcePath”属性确实说“J:\ DSDPAGE_T.xsl”,但该属性是只读/灰显的。 / p>

更新2

回应user2701753:

我知道你在说什么;我习惯在C#项目中使用它们;但在这种情况下,没有References文件夹。只有:

Solution 'HDP' (2 projects)
    HDP [project#1]
        ReportFormats [folder]
            [a bunch of .xsl files]
        [a bunch of .vb files]
    HDPSetup [project#2] <-- the problem child
        DetectedDependencies [folder]
        [various files: .dll, .xsl, .exe, .chi, .chm, .mdb, .bmp, .ico]

“Detected Dependencies”文件夹(我认为它可能是参考文献的VB版本)显然是空的 - 双击它没有任何作用;它不会扩展或开放。

更新3

这或许是一个很好的线索:当我在Windows资源管理器中查看项目文件时,在那里看不到Visual Studio中显示的许多文件!例如,C:\ Project \ ccr \ Handheld \ Development \ Development \ HDP \ HDP \ HDPSetup只有这个:

Debug [folder] <- empty
Release [folder] <- empty
HDPSetup.vdproj
HDPSetup.vdproj.vspscc
ccr.bmp
ccr.ico

根据VS的说法,我希望看到它抱怨的那些文件存在于(不存在的)J:驱动器上。

更新4

这与上述问题有关。

回顾一下要点:我正在尝试将VB.NET(.NET2 / VS 2003)解决方案移植/升级到.NET4 / VS2010。

该解决方案由三个项目组成;安装项目比犀牛的劫掠事故造成更大的混乱和恶意(显然它被认为是驱动器J,显然),我不需要对该项目做任何事情,所以我将其从解决方案中移除。 / p>

删除将我的错误数量从35减少到14。

然而,其余的错误似乎与“其他”项目有关。现在有两个;我会称之为HDP和HHTConvert(因为这些都是他们的名字,而我现在的雇主似乎并没有像透露任何可以识别公司或项目的信息一样偏执,因为我的上一个是。)

虽然Project Dependencies允许我将一个设置为依赖另一个,但无论我设置它的方式如何,它都会失败:

0) Both depending on each other - disallowed, circular jerk tailchasing considered bad juju
1) HDP depending on HHTConvert: Type 'HHTConvert.HHTConverter' is not defined.
2) HHTConvert depending on HDP: ""
3) Neither depending on the other:""

所以我做的并不重要,同样的错误信息出现了。错误指向的是:

Public hhtConvertThread As HHTConvert.HHTConverter

如何将HHTConvert项目引入HDP项目需要做些什么?看起来他们处于相同的解决方案 - 特别是当一个“依赖”另一个时 - 就足够了。 HHTConverter显然不是很可靠。

更新5

对我原始陈述的更正/修正:“我正在尝试构建一个包含三个VB项目的解决方案”

实际上,我成功删除了一个项目,因此它是两个项目,一个是C#(“主要”一个,HDP,是VB)。

这可能(C#/ VB“不匹配”导致两个项目互相嗤之以鼻,类似于着名的Star-bellied Sneeches和“普通香草”Sneeches?(我认为普通的对应VB) )。

更新6

所以我现在已经编译了(参见我的答案),但是我得到了一个后续的(运行时)错误,namley:“无法加载DLL'cdbmenu1.dll':找不到指定的模块。 “

果然,其中一个VB文件确实引用了一个具有相当温和名称的DLL几次,其中的行如下:

Declare Sub GetLastMenu1Error Lib "cdbmenu1.dll" (ByVal Msg As String, ByVal Length As Int32)

所以,我搜索了本地(工作)网络并找到了该DLL的一些副本。我将最新版本(2.5岁)复制到HDP的bin文件夹,并尝试运行该应用程序。现在我明白了,“试图加载一个格式不正确的程序

这是故事的一部分,被称为“DLL炼狱”还是“DLL Perdition”的演绎 (geschweige denn“Extraordinary DLL Rendition”)?

3 个答案:

答案 0 :(得分:2)

查看解决方案资源管理器中项目中的“引用”,如果错误删除引用并读取它们,则会显示“完整路径”。

答案 1 :(得分:1)

在visual studio安装项目中你是否从VB项目中添加了“活动内容”?在记事本中打开VB项目文件,检查项目文件中包含的不同文件,您的安装项目将尝试将所有这些文件作为MSI的一部分包含在内。所以打开项目文件,你应该看到J驱动器。

所有这些文件都可以从项目中取出然后重新添加。

答案 2 :(得分:0)

我解决了这个问题:我必须将C#项目中的.DLL添加到VB项目的References中。一旦我这样做,所有错误都消失了。为什么那里还没有,我不知道。