C# 缺少DLL';在使用MSBuild通过InstallShield Pro项目生成Visual Studio解决方案时,将执行以下操作和自定义操作:

C# 缺少DLL';在使用MSBuild通过InstallShield Pro项目生成Visual Studio解决方案时,将执行以下操作和自定义操作:,c#,msbuild,installshield,C#,Msbuild,Installshield,我目前正在尝试自动化我们的.NET构建,目前遇到了一个障碍。在具有InstallShield 2016 Professional许可证的机器上,在Visual Studio中构建项目时,一切都很好。但是,当尝试使用MSBuild在具有InstallShield 2016 Standalone的计算机上构建VS解决方案时,生成的MSI没有必需的DLL或自定义操作。同时,尝试使用Iscmdbld构建.ism会导致无法找到csproj的主要输出,即使在Devenv中构建之后也是如此。如果您使用的是项目

我目前正在尝试自动化我们的.NET构建,目前遇到了一个障碍。在具有InstallShield 2016 Professional许可证的机器上,在Visual Studio中构建项目时,一切都很好。但是,当尝试使用MSBuild在具有InstallShield 2016 Standalone的计算机上构建VS解决方案时,生成的MSI没有必需的DLL或自定义操作。同时,尝试使用Iscmdbld构建.ism会导致无法找到csproj的主要输出,即使在Devenv中构建之后也是如此。如果您使用的是项目输出组(如主要输出),那么您的选择将受到限制。您必须使用VS集成构建(通过devenv)或MSBuild;iscmdbld无法解析项目输出组


另一种选择是从项目输出组更改为使用不需要VisualStudio知识的静态(或动态)文件链接。我倾向于选择静态链接,因为很容易准确地说出项目中的内容。更重要的是,使用静态链接,您不能悄悄地丢失以前添加的文件,因此更容易避免可能违反组件或升级规则。

希望这不会太旧而无法使用。我知道InstallShield绝对是最糟糕的

如果在纯文本编辑器中编辑.isproj,您将看到它只是一个常规的MSBuild脚本。你会发现有很多被注释掉的东西解释了(糟糕的)你可以添加的东西。查找包含“ProjectReference items”说明的ItemGroup,并添加以下表单的节点:


{2d3f37cc-0e93-4673-a3df-59c556185f71}
显示在VS中的项目名称