我正在尝试构建一个包含三个 VB 项目的解决方案;我正在研究的一个,以及另外两个相互依赖的(尽管一个说“不可用”)。
在尝试编译时,我得到了有关辅助项目的信息,“无法找到位于 '[TARGETDIR]' 中的文件 'DSDPAGE_T.xsl' 的源文件 'J:\DSDPAGE_T.xsl',该文件可能不存在或被锁定。 "
Ĵ?我搜索了解决方案以查看“J:”是否在任何地方进行了硬编码,但不是,所以......?!?
“丢失”的文件就在项目中!为什么它在 J 中寻找?如果这在某处被硬编码,为什么不点击 2 次错误消息将我带到现场?当我这样做时,会出现一个带有两个窗格的“文件系统”选项卡。在左边:
File System on Target Machine
Application Folder
System Folder
User's Desktop
User's Programs Menu
...在右侧窗格中,该项目中的文件列表(与我在解决方案资源管理器中看到的相同),其中许多是找不到它们的错误消息的主题...?!?
这是“VB的东西”(我以前从未使用过VB)还是......?!?
也许我可以创建一个 J 驱动器并将编译器蒙蔽的那些文件放在那里,这样它才能编译 - 这不是我需要处理的项目,我只需要让解决方案编译,这样我就可以更新其他项目。
更新
查看项目中可见但项目表现出严重近视的这些文件之一,其“SourcePath”属性确实显示“J:\DSDPAGE_T.xsl”,但该属性为只读/灰色。
更新 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 版本的 References)显然是空的 - 2-单击它什么都不做;它不会扩展或打开。
更新 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 上)造成更多的混乱和恶意,我不需要对那个项目做任何事情,所以我从解决方案中删除了它。
该删除将我的错误计数从 35 减少到 14。
但是,其余的错误似乎与“其他”项目有关。现在有两个;我会称他们为 HDP 和 HHTConvert(因为这些是他们的名字,而且我现在的雇主似乎并不像我以前的雇主那样偏执地泄露任何可以识别公司或项目的信息)。
尽管项目依赖项允许我将一个设置为依赖于另一个,但无论我设置哪种方式,它都会失败:
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-belied 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 Purgatory”的部分还是“DLL Perdition”(geschweige denn “Extraordinary DLL Rendition”)的演绎?