为什么 vdproj 中“检测到的依赖项”下的程序集的排除属性不存在?

Isa*_*ger 5 vdproj visual-studio-2010

我有一个简单的问题。我想在我的安装项目中排除一些 dll 依赖项(在检测到的依赖项文件夹中),这样它们就不会被复制到用户安装文件夹中。我通过将不需要的程序集的“排除”属性设置为 true 来解决这个问题,然后构建 msi 文件。它工作正常,程序集被排除。

但是,如果我关闭 Visual Studio 并重新加载它,则只有“排除”属性之一(在我的情况下设置了 4 个)保持设置为 true。我检查了 vdproj 文件,其中有 4 行,如下所示:

"Exclude" = "11:TRUE"
Run Code Online (Sandbox Code Playgroud)

...我想要排除的每个程序集都有一个。

所以看来 VS2010 没有正确从 vdproj 文件加载设置。我很困惑。有人有解决方法吗?

Sun*_*000 4

这是因为当 DLL 的“复制本地”属性设置为 true 时,依赖项分析器总是将 DLL 添加到部署项目中。请参阅 MSDN 文章“安装和部署项目疑难解答”中标题为“重新打开解决方案时会再次包含先前排除的文件”的部分。您必须选择使用 Visual Studio 的“复制本地”还是使用部署项目将文件安装在正确的位置,尤其是在复杂的解决方案中。